* @return LengthAwarePaginator */ public function paginate(): LengthAwarePaginator { $perPage = Request::get('per_page', 20); $page = Request::get('page', 1); $data = ModuleManager::toCollection(); $chunk = $data->forPage($page, $perPage); $modules = $chunk->map(function ($module) { return [ 'id' => $module->getName(), 'name' => $module->getName(), 'alias' => $module->getAlias(), 'description' => $module->getDescription(), 'priority' => $module->getPriority(), 'keywords' => $module->get('keywords'), 'requires' => $module->getRequires(), 'enabled' => $module->isEnabled(), 'version' => $module->get('version'), 'author' => $module->get('author'), ]; }); $modules = static::hydrate($modules->toArray()); $paginator = new LengthAwarePaginator($modules, ModuleManager::count(), $perPage); $paginator->setPath(url()->current()); return $paginator; } }