public function delete()
{
$mapper = Pheasant::instance()->mapperFor($this);
$this->events()->wrap(array('Delete'), $this, function ($obj) use($mapper) {
$mapper->delete($obj);
// ensure we clear the changes before after events fire
$obj->markSaved(false)->clearChanges();
});
return $this;
}