*/ public function share(Request $request): array { $user = $request->user() ?? Auth::guard('sanctum')->user(); return [ ...parent::share($request), 'flash' => [ 'success' => $request->session()->get('success'), 'error' => $request->session()->get('error'), ], 'app' => [ 'version' => config('app.version'), 'tag' => config('app.tag'), ], 'config' => [ 'timeEventSourceUrl' => config('time.eventSourceUrl'), ], 'user' => $user ? [ 'name' => $user->name, 'token' => Session::get('token'), 'permissions' => \Spatie\Permission\Models\Role::findByName($user->currentRole()->slug)?->permissions->pluck('name') ?? collect(), 'role' => $user->currentRole(), 'available_roles' => \App\Models\UserRole::where('rf_user_id', $user->id) ->with('role') ->get() ->map(fn($ur) => [ 'role_id' => $ur->role->role_id, 'name' => $ur->role->name, 'slug' => $ur->role->slug, 'is_default' => (bool) $ur->is_default, ]), 'available_departments' => $user->availableDepartments(), 'current_department' => $user->department->load('departmentType'), ] : null, ]; } }