(Level Selection) Only level 1 and 2 is getting unlocked , if i played lvl 2 , lvl 3 is not getting unlocked (i have 7 levels)

So i have 7 levels/scenes . My first level is unlocked and my others not ( thats good) . When i completed level 1 , level 2 is unlocked but when i completed level 2 , level 3 is not unlocked . Can anyone help me please? Script of GameManager :

using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour {

    public string nextLevel = "Level2";
    public int levelToUnlock = 2;

    public SceneFader sceneFader;

    bool gameHasEnded = false;

    public float restartDelay = 1f;

    public GameObject completeLevelUI;

    public void CompleteLevel ()
    {
        completeLevelUI.SetActive(true);
    }

    public void EndGame()
    {
        if (gameHasEnded == false)
        {
            gameHasEnded = true;
            Debug.Log("GAME OVER");
            Invoke("Restart", restartDelay);
        }
    
    }
    void Restart()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

    public void WinLevel ()
    {
        PlayerPrefs.SetInt("levelReached", levelToUnlock);
        sceneFader.FadeTo(nextLevel);
    }

}

Script of EndTrigger (I don’t think you need this )

using UnityEngine;

public class EndTrigger : MonoBehaviour {

    public GameManager gameManager;

    void OnTriggerEnter ()
    {
        gameManager.WinLevel();
        gameManager.CompleteLevel();
    }
    
   
}

Save progress with playerprefs and check every time you load level selection