I am having trouble using OnTriggerEnter to start a coroutine,

I am working on my lab project for my first Unity course so I am exceedingly new to all of this. I am trying to use a coroutine which will use a cutscene bool to freeze the player, play some audio, then let the player start moving again. I have to use a coroutine because the only way I know how to make the game wait a certain amount of time using yield return, and I cant put yield return in the on trigger enter directly because its a void so it cant return anything. Based on my admittedly limited knowledge I have no clue why it is not functioning. Here is the code in question:

private void OnTriggerEnter(Collider other)
{

    if (other.CompareTag("Player"))
    {
        Debug.Log("The trigger has occured but the coroutine hasn't started");
        StartCoroutine(FoodGotRoutine());
    }

}

IEnumerator FoodGotRoutine()
{
    playerController.cutscene = true;
    foodGotTrigger.PlayOneShot(foodGot);
    yield return new WaitForSeconds(5);
    playerController.cutscene = false;
    
    
}

,

I believe CompareTag is different to the regular tag.
_
if (other.gameObject.CompareTag(“Player”))
_
However, I think you want:
_

_

private void OnTriggerEnter(Collider other)
{
    if (other.tag == "Player")
    {
        StartCoroutine(FoodGotRoutine());
    }
}