/** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { parent::boot($events); Collection::created(function ($collection) { /** @var Collection $collection */ $page = new Page(); $page->title = $collection->title; $collection->page()->save($page); }); Poem::created(function ($poem) { /** @var Poem $poem */ $page = new Page(); $page->title = $poem->title; /** @var Collection $collection */ $collection = $poem->collection; $parentPage = $collection->page; $page->parent()->associate($parentPage); $poem->page()->save($page); }); }