from->year; $vacationRequestNumber = $vacationRequest->user->vacationRequests() ->whereYear("from", $year) ->count() + 1; $vacationRequest->name = "{$vacationRequestNumber}/${year}"; } public function saved(VacationRequest $vacationRequest): void { if ($vacationRequest->isDirty("state")) { $previousState = $vacationRequest->getOriginal("state"); $this->fireStateChangedEvent($vacationRequest, $previousState, $vacationRequest->state); } } protected function fireStateChangedEvent( VacationRequest $vacationRequest, ?VacationRequestState $from, VacationRequestState $to, ): void { $event = new VacationRequestStateChanged($vacationRequest, $from, $to, $this->getAuthUser()); $this->dispatcher->dispatch($event); } protected function getAuthUser(): ?User { /** @var User $user */ $user = $this->auth->guard()->user(); return $user; } }