protected function prepareQuery($query)
    {
        $query = $query->with($this->withs);

        if ($this->withCounts) {
            $query = $query->withCount($this->withCounts);
        }

        if ($this->orderBy) {
            $query = $query->orderBy($this->orderBy, $this->orderByDirection);
        }

        if ( ! empty($this->has)) {
            foreach ($this->has as $has) {
                $query = $query->has($has['relation'], $has['operator'], $has['value']);
            }
        }

        if ( ! empty($this->whereHas)) {
            foreach ($this->whereHas as $has) {
                $query = $query->whereHas($has[0], isset($has[1]) ? $has[1] : null);
            }
        }

        return $query;
    }
protected function prepareQuery($query)
    {
        $query = $query->with($this->withs);

        if ($this->withCounts) {
            $query = $query->withCount($this->withCounts);
        }

        if ($this->orderBy) {
            $query = $query->orderBy($this->orderBy, $this->orderByDirection);
        }

        if ( ! empty($this->has)) {
            foreach ($this->has as $has) {
                $query = $query->has($has['relation'], $has['operator'], $has['value']);
            }
        }

        if ( ! empty($this->whereHas)) {
            foreach ($this->whereHas as $has) {
                $query = $query->whereHas($has[0], isset($has[1]) ? $has[1] : null);
            }
        }

        return $query;
    }
protected function prepareQuery ( $ query ) { $ query = $ query -> with ( $ this -> withs ) ; if ( $ this -> withCounts ) { $ query = $ query -> withCount ( $ this -> withCounts ) ; } if ( $ this -> orderBy ) { $ query = $ query -> orderBy ( $ this -> orderBy , $ this -> orderByDirection ) ; } if ( ! empty ( $ this -> has ) ) { foreach ( $ this -> has as $ has ) { $ query = $ query -> has ( $ has [ 'relation' ] , $ has [ 'operator' ] , $ has [ 'value' ] ) ; } } if ( ! empty ( $ this -> whereHas ) ) { foreach ( $ this -> whereHas as $ has ) { $ query = $ query -> whereHas ( $ has [ 0 ] , isset ( $ has [ 1 ] ) ? $ has [ 1 ] : null ) ; } } return $ query ; }
Prepare the query for execution

@param $query
@return mixed
Prepare the query for execution