*/ public function share(Request $request): array { return [ ...parent::share($request), 'name' => config('app.name'), 'organisation' => $this->resolveOrganisation($request), 'application' => $request->route('application') ? Application::with('environments')->findOrFail($this->routeKey($request->route('application'))) : null, 'flash' => [ 'server_credentials' => $request->session()->has('sudo_password') ? [ 'sudo_password' => $request->session()->get('sudo_password'), ] : null, ], 'auth' => [ 'user' => $request->user()?->load('organisations'), ], 'ziggy' => [ ...(new Ziggy)->toArray(), 'location' => $request->url(), ], ]; } private function resolveOrganisation(Request $request): ?Organisation { $query = Organisation::with('applications.environments') ->withCount(['providers', 'sourceProviders', 'registries', 'servers', 'applications']); if ($request->route('organisation')) { return $query->findOrFail($this->routeKey($request->route('organisation'))); } $organisationId = $request->user()?->organisations()->value('organisations.id'); return $organisationId ? $query->find($organisationId) : null; } private function routeKey(mixed $routeValue): mixed { return $routeValue instanceof Model ? $routeValue->getKey() : $routeValue; } }