/**
  * @param Request $request
  * @return $this
  */
 public function index(Request $request)
 {
     $this->breadcrumb->push('Forum', route('forum.home'));
     $this->pushForumCriteria();
     // execute query: get all categories that user can has access
     $sections = $this->forum->groupBySections(auth()->id(), $request->session()->getId());
     // let's cache tags. we don't need to run this query every time
     $tags = Cache::remember('forum:tags', 60 * 24, function () {
         return $this->forum->getTagClouds();
     });
     // create view with online users
     $viewers = app()->make('Session\\Viewers')->render($request->getRequestUri());
     return parent::view('forum.home')->with(compact('sections', 'viewers', 'tags'));
 }