public function paginate(
        $perPage = null,
        $columns = null,
        $pageName = null,
        $page = null,
        bool $lengthAware = true
    ) {
        $perPage = is_null($perPage) ? config('lego.paginator.per-page') : $perPage;
        $pageName = is_null($pageName) ? config('lego.paginator.page-name') : $pageName;
        $columns = is_null($columns) ? ['*'] : $columns;
        $page = $page ?: Request::query($pageName, 1);

        if ($lengthAware) {
            $this->paginator = $this->createLengthAwarePaginator($perPage, $columns, $pageName, $page);
        } else {
            $this->paginator = $this->createLengthNotAwarePaginator($perPage, $columns, $pageName, $page);
        }

        $this->paginator->setCollection(
            $this->paginator->getCollection()->map(function ($row) {
                return Finder::createStore($row);
            })
        );

        return $this->paginator;
    }