Pausing the game after player object gets destroyed

Hey guys, as the title says, I want to make it so that when the player game object gets destroyed, the game will then pause and bring up a screen (I’ve made one called GameOverScreen), however, I cannot seem to get my head around it. The screen displays however the game doesn’t pause. Any idea what could be causing this? Here is my code:

 using UnityEngine; 
    using UnityEngine.UI;
    
     public class PlayerHealth : MonoBehaviour
     {
         public float m_StartingHealth = 100f;               // The amount of health each tank starts with.
         public Slider m_Slider;                             // The slider to represent how much health the tank currently has.
         public Image m_FillImage;                           // The image component of the slider.
         public Color m_FullHealthColor = Color.green;       // The color the health bar will be when on full health.
         public Color m_ZeroHealthColor = Color.red;         // The color the health bar will be when on no health.
         public GameObject m_ExplosionPrefab;                // A prefab that will be instantiated in Awake, then used whenever the tank dies.
         public Camera mainCamera;
         public Camera gameOverCamera;
         public GameObject GameOverMenu;
     
         private bool gameover = false;
         private AudioSource m_ExplosionAudio;               // The audio source to play when the tank explodes.
         private ParticleSystem m_ExplosionParticles;        // The particle system the will play when the tank is destroyed.
         private float m_CurrentHealth;                      // How much health the tank currently has.
         private bool m_Dead;                                // Has the tank been reduced beyond zero health yet?
     
         void Start()
         {
             GameOverMenu.SetActive(false);
         }
     
         private void Awake()
         {
             // Instantiate the explosion prefab and get a reference to the particle system on it.
             m_ExplosionParticles = Instantiate(m_ExplosionPrefab).GetComponent<ParticleSystem>();
     
             // Get a reference to the audio source on the instantiated prefab.
             m_ExplosionAudio = m_ExplosionParticles.GetComponent<AudioSource>();
     
             // Disable the prefab so it can be activated when it's required.
             m_ExplosionParticles.gameObject.SetActive(false);
         }
     
     
         private void OnEnable()
         {
             // When the tank is enabled, reset the tank's health and whether or not it's dead.
             m_CurrentHealth = m_StartingHealth;
             m_Dead = false;
     
             // Update the health slider's value and color.
             SetHealthUI();
         }
     
     
         public void TakeDamage(float amount)
         {
             // Reduce current health by the amount of damage done.
             m_CurrentHealth -= amount;
     
             // Change the UI elements appropriately.
             SetHealthUI();
     
             // If the current health is at or below zero and it has not yet been registered, call OnDeath.
             if (m_CurrentHealth <= 0f && !m_Dead)
             {
                 OnDeath();
                 mainCamera.transform.parent = null;
                 mainCamera.enabled = true;
                 gameOverCamera.enabled = false;
     
                 if (m_CurrentHealth <= 0f && !m_Dead)
                 {
                     gameover = !gameover;
                 }
                 gameover = !gameover;
     
                 if (gameover)
                 {
                     GameOverMenu.SetActive(true);
                     Time.timeScale = 0;
                 }
     
                 if (!gameover)
                 {
                     GameOverMenu.SetActive(false);
                     Time.timeScale = 1;
                 }
             }
         }
     
     
         private void SetHealthUI()
         {
             // Set the slider's value appropriately.
             m_Slider.value = m_CurrentHealth;
     
             // Interpolate the color of the bar between the choosen colours based on the current percentage of the starting health.
             m_FillImage.color = Color.Lerp(m_ZeroHealthColor, m_FullHealthColor, m_CurrentHealth / m_StartingHealth);
         }
     
     
         private void OnDeath()
         {
             // Set the flag so that this function is only called once.
             m_Dead = true;
     
             // Move the instantiated explosion prefab to the tank's position and turn it on.
             m_ExplosionParticles.transform.position = transform.position;
             m_ExplosionParticles.gameObject.SetActive(true);
     
             // Play the particle system of the tank exploding.
             m_ExplosionParticles.Play();
     
             // Play the tank explosion sound effect.
             m_ExplosionAudio.Play();
     
             // Turn the tank off.
             gameObject.SetActive(false);
         }
     }

==================
if (m_CurrentHealth <= 0f && !m_Dead)
{
OnDeath();
mainCamera.transform.parent = null;
mainCamera.enabled = true;
gameOverCamera.enabled = false;

              if (m_CurrentHealth <= 0f && !m_Dead)
              {
                  gameover = !gameover;
              }
              gameover = !gameover;
  
              if (gameover)
              {
                  GameOverMenu.SetActive(true);
                  Time.timeScale = 0;
              }
  
              if (!gameover)
              {
                  GameOverMenu.SetActive(false);
                  Time.timeScale = 1;
              }
          }
      }

==================
This line of code put in a Update method because of your current health continues check when player hit.