/**
  * Searches trough cases
  *
  * @param  Request $request
  *
  * @return bool|Builder
  */
 private function searchByKeywords(Request $request)
 {
     $keywords = $request->input('keywords');
     $contacts = $this->contact->where('name', 'LIKE', '%' . $keywords . '%')->get();
     if (is_numeric($keywords)) {
         $query = $this->case->where('id', $keywords);
     } else {
         if (strpos($keywords, self::TYPE_TWEET) !== false || strpos($keywords, 'twitter') !== false) {
             $query = $this->case->where('origin', 'Twitter mention')->orWhere('origin', 'Twitter direct');
         } else {
             if (strpos($keywords, 'fb') !== false || strpos($keywords, 'facebook') !== false || strpos($keywords, 'post') !== false) {
                 $query = $this->case->where('origin', 'Facebook post');
             }
         }
     }
     if (strtotime($keywords)) {
         $today = date("Y-m-d", strtotime("+0 hours", strtotime($keywords)));
         $tomorrow = date("Y-m-d", strtotime("+1 day", strtotime($keywords)));
         $query = $this->case->whereHas('messages', function ($q) use($today, $tomorrow) {
             $q->orderBy('id', 'ASC')->where('post_date', '>=', $today)->where('post_date', '<', $tomorrow);
         });
     }
     foreach ($contacts as $key => $contact) {
         $query = $contact->cases();
     }
     if (!isset($query)) {
         return false;
     }
     return $query;
 }