Button works only once

When I start the script, the buttons reload(which activates startGame()) and go to main menu(which activates goToMenu()) work the first time. After that, if I say, click the reload and play again, and lose, it does not work. The only way to get to the end screen is to lose in the game, where the endGame() fuction is called. Here is the GameManager Code:

public class GameManager : MonoBehaviour
{
public static GameManager share = null;
private bool gameOver = false;

private int score = 0;

private int highScore;

private int points;

private int finalScore;

private bool resetLives = false;

public bool GameOver
{
    get { return gameOver; }
}
public bool ResetLives
{
    get { return resetLives; }
}
public int HighScore
{
    get { return highScore;  }
}
public int FinalScore
{
    get { return finalScore; }
}

public int Score
{
    get { return score; }
}
void Awake()
{
    if (share == null)
    {
        share = this;
    }
    else if (share != this)
    {
        Destroy(gameObject);
    }

    DontDestroyOnLoad(gameObject);
}

private void Start()
{
  
}

public void addPoint()
{

    score = score + 1;

}



public void resetLivesFalse()
{
    resetLives = false;
}

public void startGame()
{
    SceneManager.LoadScene("Game");
    
    gameOver = false;

    score = 0;
    

}
public void endGame()
{
    gameOver = true;
    SceneManager.LoadScene("GameOver");
    finalScore = Score;
    if (score > highScore)
    {
        PlayerPrefs.SetInt("High Score", Score);
    }
  
}
public void goToMenu()
{
    SceneManager.LoadScene("MainMenu");
}

}

i think it might be as simple as putting

gameOver = false;

in your Start Method. right now you gameOver = false is only being called at specific occurences so anytime you restart the game EVEN THO your button calls it the GameManager itself doesn’t read it since it’s not done at the beginning of your game.