*/ public function share(Request $request): array { // Get translations from translator app. $translations = Cache::remember(sprintf('translations_%s', app()->getLocale()), 86400, function () { $translator = App::make('translator'); $property = (new \ReflectionClass($translator))->getProperty('loaded'); $property->setAccessible(true); return $property->getValue($translator); }); // Get all errors messages of session from middleware and redirect response. $errors = array_filter([ ...($request->session()->get('errors')?->getBag('default')?->toArray() ?? []), ...array_filter([ 'error' => $request->session()->get('error'), ]), ]); $props = [ ...parent::share($request), 'appEnv' => [ 'mode' => config('app.env'), 'name' => config('app.name'), 'locale' => app()->getLocale(), ], 'auth' => [ 'user' => $request->user(), 'policies' => [ 'users' => [ 'viewAny' => Gate::allows('viewAny', User::class), 'create' => Gate::allows('create', User::class), ], ] ], 'enumItemsPerPagination' => ItemsPerPaginationEnum::toArray(), 'enumUserRole' => RoleEnum::toArray(), 'errors' => $errors, 'translations' => $translations, ]; if (Breadcrumbs::exists($request->route()->getName())) { $props = array_merge($props, [ 'breacrumbs' => Breadcrumbs::generate($request->route()->getName())->toArray() ]); } return $props; } }