/** * Paginate the given query. * * @param int $perPage * @param int $page * @param string $pageName * @return \Luminous\Bridge\Post\Paginator */ public function paginate($perPage, $page = null, $pageName = 'page') { $page = $page ?: Paginator::resolveCurrentPage($pageName); $query = $this->forPage($page, $perPage)->buildQuery(); $posts = $this->retrievePosts($query); $total = $this->retrieveTotal($query); return new Paginator($posts, $total, $perPage, $page, ['path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName]); }