public function toObject()
{
$obj = new \stdClass();
$vars = get_object_vars($this);
$vars = array_merge($this->params, $vars);
unset($vars['params']);
unset($vars['sender']);
unset($vars['recipient']);
unset($vars['subscriptions']);
unset($vars['action']);
unset($vars['object']);
foreach ($vars as $key => $value) {
if (is_object($value) && is_callable([$value, 'toObject'])) {
$obj->{$key} = $value->toObject();
} else {
$obj->{$key} = $value;
}
}
return $obj;
}