class Model{
function doAction()
{
event::fire('Model::doAction.before', somePrepareData);
// do some actions
event::fire('Model::doAction.after', someResult);
}
}
event::attach( 'Model::doAction.after', function(someResult){ /* can use result after model will finish */ } );
Model::doAction();