*/ public function share(Request $request): array { $locale = Session::get('lang') ?? config('app.fallback_locale'); app()->setLocale($locale); // Get translations from translator app. $translations = Cache::get(sprintf('translations_%s', $locale), function () { $translator = App::make('translator'); $property = (new \ReflectionClass($translator))->getProperty('loaded'); $property->setAccessible(true); return $property->getValue($translator); }); $props = [ ...parent::share($request), 'auth' => [ 'user' => $request->user(), 'policies' => [ 'users' => [ 'viewAny' => Gate::allows('viewAny', User::class), 'create' => Gate::allows('create', User::class), ] ] ], 'enumItemsPerPagination' => ItemsPerPaginationEnum::toArray(), 'enumUserRole' => RoleEnum::toArray(), 'translations' => $translations, 'locale' => $locale, ]; if (Breadcrumbs::exists($request->route()->getName())) { $props = array_merge($props, [ 'breacrumbs' => Breadcrumbs::generate($request->route()->getName())->toArray() ]); } return $props; } }