/**
  * setting up listener
  *
  * @param Dispatcher $events
  * @param Repository $cache
  */
 private function setupListener(Dispatcher $events, Repository $cache)
 {
     $enabled = config('query-analyzer.enabled', false);
     if (!$enabled) {
         return;
     }
     $queryRepository = new QueryRepository($cache);
     $events->listen(QueryExecuted::class, function (QueryExecuted $queryExecuted) use($queryRepository) {
         $sql = $queryExecuted->sql;
         $bindings = $queryExecuted->bindings;
         $time = $queryExecuted->time;
         try {
             $queryRepository->store($sql, $bindings, $time);
         } catch (\Exception $e) {
             //  be quiet on error
         }
     });
 }
 /**
  * returns queries
  *
  * @param int $offset
  * @param int $limit
  * @return \Illuminate\Support\Collection
  */
 private function getQueries($offset = 0, $limit = 0)
 {
     $filter = $this->option('filter');
     if ($filter) {
         $queries = $this->repository->only($filter);
     } else {
         $queries = $this->repository->queries();
     }
     if ($offset > 0) {
         $queries = $queries->splice($offset);
     }
     if ($limit > 0) {
         $queries = $queries->take($limit);
     }
     return $queries;
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $this->repository->clear();
 }