How to wait for particle system to finish before loading scene?

I have a simple car game where the player is the car and the goal is to avoid obstacles. When the player hits the obstacles an explosion particle plays and the scene gets reloaded.
Player.cs

private void PlayExploasion()
        {
            explosion.Play();
        }
    
        private void OnCollisionEnter(Collision other)
        {    
            Destroy(gameObject, 0.16f);
            PlayExploasion();
            FindObjectOfType<GameManager>().EndGame();
        }

GameManager.cs

public void EndGame()
    {
        player.enabled = false;

        StartCoroutine(RestartLevel());
    }

    IEnumerator RestartLevel()
    {
        Time.timeScale = 1f;
        Time.fixedDeltaTime = Time.fixedDeltaTime;

        yield return new WaitForSeconds(1f);

        Time.timeScale = 1f;
        Time.fixedDeltaTime = Time.fixedDeltaTime;

        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }

The problem is that the scene gets loaded way too fast and the explosion doesn’t have enough time to finish. Is there any way I can better time my explosion?

I have figured it out myself. All I had to do is make the explosion a prefab and every time the player died I instantiated the prefab. I also had to enable Play on awake on my particle system.