fn () => [ 'success' => $request->session()->get('success'), 'error' => $request->session()->get('error'), 'info' => $request->session()->get('info'), 'warning' => $request->session()->get('warning'), ], '$roles' => $roles = fn () => $request->user()?->roles()->with('permissions:id,name')->get(['id', 'name']), '$permissions' => function () use ($roles, $request) { $permissions = $request->user()?->permissions()->get(['id', 'name']); return $roles()->reduce(function (Collection $prev, Role $role) { $role->permissions->each(fn (Permission $permission) => $prev->push($permission)); return $prev; }, $permissions); }, ]); } }