user(); if (! $user instanceof User) { return $next($request); } $workspaceParam = $request->route()?->parameter('workspace'); $workspace = $workspaceParam instanceof Workspace ? $workspaceParam : (is_scalar($workspaceParam) ? app(WorkspaceResolver::class)->resolve((string) $workspaceParam) : null); if (! $workspace instanceof Workspace) { abort(404); } /** @var WorkspaceContext $context */ $context = app(WorkspaceContext::class); if (! $context->isMember($user, $workspace)) { abort(404); } $context->setCurrentWorkspace($workspace, $user, $request); return $next($request); } }