/**
  * @return $this|mixed
  */
 public function presenter()
 {
     if ($this->hasPresenter()) {
         return $this->presenter->present($this);
     }
     return $this;
 }
 /**
  * Wrapper result data.
  *
  * @param mixed $result
  *
  * @return mixed
  */
 public function parserResult($result)
 {
     if ($this->presenter instanceof Presenter) {
         if ($result instanceof Collection || $result instanceof LengthAwarePaginator) {
             $result->each(function ($model) {
                 if ($model instanceof Presentable) {
                     $model->setPresenter($this->presenter);
                 }
                 return $model;
             });
         } elseif ($result instanceof Presentable) {
             $result = $result->setPresenter($this->presenter);
         }
         if (!$this->skipPresenter) {
             return $this->presenter->present($result);
         }
     }
     return $result;
 }