how to add time delay

i want to add time delay between scenes to this code

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


public class MoveToNextLevel : MonoBehaviour
{
    public int nextSceneLoad;

    // Start is called before the first frame update
    void Start()
    {
        nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
    }

    public void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.tag == "Player")
        {
            if(SceneManager.GetActiveScene().buildIndex == 31) /* < Change this int value to whatever your
                                                                   last level build index is on your
                                                                   build settings */
            {
                Debug.Log("You Completed ALL Levelws");
                
                //Show Win Screen or Somethin.
            }
            else
            {
                //Move to next level
                SceneManager.LoadScene(nextSceneLoad);

                //Setting Int for Index
                if (nextSceneLoad > PlayerPrefs.GetInt("levelAt"))
                {
                    PlayerPrefs.SetInt("levelAt", nextSceneLoad);
                }
            }
        }
    }
}

If you’re wanting to just add a delay within the current scene, you can use a coroutine for that. You would place your lines 22-28 (though the line numbers are off because the code didn’t get formatted properly at the beginning) into a separate function that returns and IEnumerator, and then call that function using StartCoroutine(). Inside of that function you can use return yield WaitForSeconds() to wait before executing the scene-changing code. Here’s what that would look like in your code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; /* SUBSCRIBING TO MY YOUTUBE CHANNEL: 'VIN CODES' WILL HELP WITH MORE VIDEOS AND CODE SHARING IN THE FUTURE :) THANK YOU */

public class MoveToNextLevel : MonoBehaviour
{
    public int nextSceneLoad;

    // Start is called before the first frame update
    void Start()
    {
        nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
    }

    public void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Player")
        {
            if (SceneManager.GetActiveScene().buildIndex == 31) /* < Change this int value to whatever your
                                                                last level build index is on your
                                                                build settings */
            {
                Debug.Log("You Completed ALL Levelws");

                //Show Win Screen or Somethin.
            }
            else
            {
                StartCoroutine(ChangeScenes());
            }
        }
    }

    IEnumerator ChangeScenes()
    {
        yield return new WaitForSeconds(5.0f);
        //Move to next level
        SceneManager.LoadScene(nextSceneLoad);
        //Setting Int for Index
        if (nextSceneLoad > PlayerPrefs.GetInt("levelAt"))
        {
            PlayerPrefs.SetInt("levelAt", nextSceneLoad);
        }
    }
}

You can learn more about coroutines in Unity here: Unity - Manual: Coroutines