/**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     view()->composer('layouts.master', function ($view) {
         $notification_obj = Notification::read(Auth::user()->id, true, 3);
         $notification_list = Notification::format($notification_obj);
         $view->with('user_notification_count', Notification::count(Auth::user()->id));
         $view->with('user_notification_list', $notification_list);
         $view->with('user_messages_count', Messages::countUnseen());
         $view->with('user_messages_list', Messages::topUnseen(3));
     });
     view()->composer('users.list', function ($view) {
         $view->with('company_id', User::where('id', Auth::user()->id)->with(['company' => function ($q) {
             $q->select('companies.id', 'companies.name');
         }])->first()->company->pluck('id')->toArray()[0] ?? "");
         $view->with('company_name', User::where('id', Auth::user()->id)->with(['company' => function ($q) {
             $q->select('companies.id', 'companies.name');
         }])->first()->company->pluck('name')->toArray()[0] ?? "");
     });
 }
 public function show($id = null)
 {
     if ($id == null) {
         $id = Auth::user()->id;
     }
     $user = User::find($id);
     $notification_count = Notification::count($id);
     $notification_obj = Notification::read($id, true, 6);
     $notification_list = Notification::format($notification_obj);
     $messages = Messages::topUnseen(5);
     $count_of_rosters = Roster::whereBetween('start_time', [date("Y-m-01 00:00:00"), date("Y-m-d 23:59:59")])->whereHas('users', function ($q) use($id) {
         $q->where('users.id', '=', $id);
     })->count();
     $payment_data = Payment::singleUser(Auth::user(), date("Y-m-01 00:00:00"), date("Y-m-d 23:59:59"));
     return view('users.view')->with(['user' => $user, 'notification_count' => $notification_count, 'notification_list' => $notification_list, 'messages' => $messages, 'count_of_rosters' => $count_of_rosters, 'hours_last_month' => $payment_data['time'], 'amount_last_month' => $payment_data['salary']]);
 }