public function getData()
    {
        /**
         * Eloquent's built in "paginate" method does not work well when the query contains "join", "having", or "groupby"
         * so to make things work more reliably we just create the paginator object by hand after running the query
         * TODO: find a way to not use the Paginator Facade
         */
        if ($this->options['paginate'])
        {
            $currentPage = \Paginator::getCurrentPage();

            $total = (int) $this->getQuery()->count();
            $slice = $this->getQuery()->forPage($currentPage, $this->perPage)->get();

            $models = \Paginator::make($slice->all(), $total, $this->perPage);
        } else {
            $models =  $this->getQuery()->get();
        }

        return $models;
    }