Why isn't collision detection working?

Hi All,

I’m new to Unity/Game design and trying to make it so that when my character collides with a coin, it picks it up/the coin destroys. I’ve followed a Youtube tutorial and looked a my code a milliion times over and it all looks right. Is something wrong with the way I’ve configured my objects?
Here’s my coin and beaver (character):

Here’s my file Coin.c#:

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

public class Coin : MonoBehaviour, ICollectible
{
    public static event Action OnCoinCollected;
    // Start is called before the first frame update
    public void Collect()
    {
        Debug.Log("You Collected A Coin");
        Destroy(gameObject);
        OnCoinCollected?.Invoke();
    }
}

ICollectible.c#

public interface ICollectible
{
    public void Collect();
}

Collector.cs

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

public class Collector : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D collision)
    {
        ICollectible collectible = collision.GetComponent<ICollectible>();
        if(collectible != null)
        {
            collectible.Collect();
        }
    }
}

Cointext.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class CoinText : MonoBehaviour
{
    public TextMeshProUGUI coinText;
    int coinCount;

    private void OnEnable()
    {
        Coin.OnCoinCollected += IncrementCoinCount;
    }
    private void OnDisable()
    {
        Coin.OnCoinCollected -= IncrementCoinCount;

    }
    public void IncrementCoinCount()
    {
        coinCount++;
        coinText.text = $"Coins: {coinCount}";

    }
}

Thanks!

Your beaver collider is disabled.