unable to increment the variable sitting on a gameobject from array of gameobjects

public class LightBullet : MonoBehaviour
{
public GameObject particleEffect;
public GameObject MultiBulletButton;
public GameObject Crosshair;
public GameObject Turret;
public int bulletCount = 0;

    public void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("cubies"))
        {
            Pickup(other);   
        }
    }

    public void Pickup(Collider Player)  // this function is working correctly but...
    {
        Destroy(Instantiate(particleEffect, transform.position, transform.rotation), 5f);

        bulletCount++;   // this variable doesn't get incremented. when the gameobject (on which this script is sitting) is spawned through the "powerup" array present inside the "Target" class. (script is uploaded below)

        GetComponent<MeshRenderer>().enabled = false;
        GetComponent<BoxCollider>().enabled = false;
       
        if (Turret.activeInHierarchy)
        {
            Crosshair.SetActive(true);
        }
  
        FindObjectOfType<AudioManager>().Play("PowerUP");

        MultiBulletButton.SetActive(true);

        gameObject.SetActive(false);
    }
}

You should use onTriggerStay instead (or in addition, if you need to). onTriggerEnter triggers on the fixed frame your colliders first interacted. onTriggerStay will update your desired variable when the colliders are still in contact.