Is you want to use in views and controllers you must use this: global variable for all controller and views
Or you can just use Laravel's View Composer https://laravel.com/docs/8.x/views#sharing-data-with-all-views
I am using second method. I have a "frontend" view folder. I use this code:
View::composer('frontend.*', function ($view) {
$settings = Settings::find(1);
$header_menu = Menus::where('id', $settings->header_menu)->with('items')->first();
$footer_menu = Menus::where('id', $settings->footer_menu)->with('items')->first();
$footer_menu1 = Menus::where('id', $settings->footer_menu1)->with('items')->first();
$footer_menu2 = Menus::where('id', $settings->footer_menu2)->with('items')->first();
$footer_menu3 = Menus::where('id', $settings->footer_menu3)->with('items')->first();
$blog_header_menu = Menus::where('id', $settings->blog_header_menu)->with('items')->first();
$blog_footer_menu = Menus::where('id', $settings->blog_footer_menu)->with('items')->first();
View::share('header_menu', $header_menu);
View::share('footer_menu', $footer_menu);
View::share('footer_menu1', $footer_menu1);
View::share('footer_menu2', $footer_menu2);
View::share('footer_menu3', $footer_menu3);
View::share('blog_header_menu', $blog_header_menu);
View::share('blog_footer_menu', $blog_footer_menu);
View::share('header_logo', $settings->logo);
View::share('footer_logo', $settings->footer_logo);
View::share('settings', $settings);
});