function () use ($request) { $user = $request->user(); return [ 'canCreateTeams' => $user && Jetstream::userHasTeamFeatures($user) && Gate::forUser($user)->check('create', Jetstream::newTeamModel()), 'canManageTwoFactorAuthentication' => Features::canManageTwoFactorAuthentication(), 'canUpdatePassword' => Features::enabled(Features::updatePasswords()), 'canUpdateProfileInformation' => Features::canUpdateProfileInformation(), 'hasEmailVerification' => Features::enabled(Features::emailVerification()), 'flash' => $request->session()->get('flash', []), 'hasAccountDeletionFeatures' => Jetstream::hasAccountDeletionFeatures(), 'hasApiFeatures' => Jetstream::hasApiFeatures(), 'hasTeamFeatures' => Jetstream::hasTeamFeatures(), 'hasTermsAndPrivacyPolicyFeature' => Jetstream::hasTermsAndPrivacyPolicyFeature(), 'managesProfilePhotos' => Jetstream::managesProfilePhotos(), ]; }, 'auth' => [ 'user' => function () use ($request) { if (! $user = $request->user()) { return; } $userHasTeamFeatures = Jetstream::userHasTeamFeatures($user); if ($user && $userHasTeamFeatures) { $user->currentTeam; } return array_merge($user->toArray(), array_filter([ 'all_teams' => $userHasTeamFeatures ? $user->allTeams()->values() : null, ]), [ 'two_factor_enabled' => Features::enabled(Features::twoFactorAuthentication()) && ! is_null($user->two_factor_secret), ]); }, ], 'errorBags' => function () { return collect(optional(Session::get('errors'))->getBags() ?: [])->mapWithKeys(function ($bag, $key) { return [$key => $bag->messages()]; })->all(); }, ])); return $next($request); } }