how to solve cannot save with playerPrefts in mycode??

when I played the game that I made his hightScore want to follow his biggest score, but when I restarted he did not work but returned to 0 again, even though my coded has been typed playerPrefts, can someone help to solve this problem?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class PlayerMove : MonoBehaviour
{

    Rigidbody2D rb;
    public float Jumpforce;
    public GameObject LoseScreenUi;
    public int score,hiScore;
    public Text ScoreUI, HighScoreUI;    
    public string HighScore = "HighScore";

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
      
        hiScore = PlayerPrefs.GetInt(HighScore); 
       
    }

    // Update is called once per frame
    void Update()
    {
        ScoreUI.text = "Score: " + score.ToString();
        HighScoreUI.text = "hiScore: " + score.ToString();
       
        if(Input.GetMouseButtonDown(0))
        {
            rb.velocity = Vector2.up * Jumpforce;
        }
    }

    public void PlayerLose()
    {
        
       if (score >= hiScore)
        {
       
            hiScore = score;
            PlayerPrefs.SetInt(HighScore,hiScore);
        }
        LoseScreenUi.SetActive(true);
        Time.timeScale = 0; 
    }


    public void RestartGame()
    {
        Time.timeScale = 1;
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }

    private void OnCollisionEnter2D(Collision2D collision )
    {
        if(collision.collider.CompareTag("Opstacle")) 
        {
            PlayerLose(); 
        }
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
       if(collision.CompareTag("Score")) 
        {
           score++;
        }
    
    }
}

HighScoreUI.text = "hiScore: " + score.ToString();

Should be

HighScoreUI.text = "hiScore: " + hiScore.ToString();