So your not using phyics, but you want to create the illusion of them, using events for the models.... Just wanted to clarify that your not using actual physics?
Presuming the above: Further clarification of the following.
You fire the laser at some asteroids, the laser model hits the asteroid model causing a push event, but at the same time the asteroids are causing an event on the laser?
When you handle an event, you could compare you.push to my.push and this would stop the wrong events getting triggered. Also you might want to look at other events, such as impact ...
Im still having trouble understanding what is working and what isn't.