user(); return array_merge(parent::share($request), [ "auth" => fn() => [ "user" => $user ? new UserResource($user) : null, "can" => [ "manageVacationLimits" => $user ? $user->can("manageVacationLimits") : false, "manageUsers" => $user ? $user->can("manageUsers") : false, "listAllVacationRequests" => $user ? $user->can("listAll", VacationRequest::class) : false, "listMonthlyUsage" => $user ? $user->can("listMonthlyUsage") : false, ], ], "flash" => fn() => [ "success" => $request->session()->get("success"), "error" => $request->session()->get("error"), "info" => $request->session()->get("info"), ], "years" => fn() => $user ? $this->yearPeriodRetriever->links() : [], "vacationRequestsCount" => fn() => $user->can("listAll", VacationRequest::class) ? VacationRequest::query() ->whereBelongsTo($this->yearPeriodRetriever->selected()) ->states( VacationRequestStatesRetriever::waitingForUserActionStates($user), ) ->count() : null ]); } }