How do execute explosion when instantiated object hits a particle?

I’m making a 3d shooter game. I have a particle system thats spawning large rock meshes towards the player. The player shoots/instantiates spheres to destroy the particles and also displays explosion prefab on impact. I have explosion script attached the spheres that causes them to explode and disappear when they hit an object. The problem is that the particle system is not responding as it should be when hit by the spheres. 1st Some bounce off the spheres, 2nd some particles are destroyed by the spheres, they just vanish, 3rd sometimes the spheres go through the particles and I have to shoot multiple times before the particle either is destroyed or bounces off. But through all of this the the explosion doesn’t execute when hitting particles and is not destroyed.

I tested the explosions by creating a cube in the scene and shooting it. The explosion executes and the sphere is destroyed on impact. Also the particles are bouncing off all other meshes in the scene. Im not sure what exactly I am missing to get this to work properly.

Explosion script attached to spheres:

public class Explosion : MonoBehaviour {

	public GameObject explosion; // drag your explosion prefab here

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
	void OnCollisionEnter(){
		GameObject expl = Instantiate(explosion, transform.position, Quaternion.identity) as GameObject;
		Destroy(gameObject); // destroy the sphere
		Destroy(expl, 3); // delete the explosion after 3 seconds

}

}

Heres script that shoots projectile spheres attached to empty game object:

public Rigidbody ball;
	public float bulletSpeed;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {

		if (Input.GetButtonDown ("Fire1")) {
			Rigidbody newBall;

			newBall = Instantiate (ball, transform.position, transform.rotation) as Rigidbody;
			newBall.velocity = transform.TransformDirection (Vector3.forward * bulletSpeed);

		}
		
	
}
}

I have “Trigger” enabled on particle system, and particles are set to be destroyed when the touch sphere object.

So to simplify my question, I want particles to be destroyed when an instantiated object hits that particle. I found that the trigger to destroy a particle on contact with rigid body works IF I disable collision in the particle system. Yet I have a sphere object that the one in the scene will destroy a particle but not the INSTANTIATED spheres.

What am I missing?