GameObject.Destroy(gameObject) does not destroy capsules

In this script when player and capsule or cubes touches they gotta be destroyed. code destroys cubes but it doesn’t work for capsules, any idea?

public void HandleAdResult(ShowResult result)
    {

        switch (result)
        {
            case ShowResult.Finished:
                Time.timeScale = 1f;
                GameObject.Destroy(gameObject);
              
                break;

I have this method for advertisement

 public void Watchit() {

        UnityEngine.Advertisements.Advertisement.Show("rewardedVideo", new ShowOptions() { resultCallback = HandleAdResult });

      

    }

and i call it from another script attached to a button like this (Carpisma is the script for codes above)

public GameObject ui;

public void watchit() {
    Carpisma usit = FindObjectOfType<Carpisma>();
    usit.Watchit();
    
    ui.SetActive(!ui.activeSelf);
}

now it doesn’t destroy anything lol, i changed nothing but i don’t know , this is my last thing to do , my game is ready to publish after i figure out this one please somebody help me

Maybe you could try to deactivate this gameObject and move it to a “trash container” gameObject, then write a script to destroy the trash container gameObject, this should destroy its children.

I don’t know the exact problem but this is an alternative way that I could suggest.