protected function next(Cursor $cursor, $columns)
    {
        if ($cursor->isAfter()) {
            $this->whereId($cursor->getAfter(), $this->descending ? '<' : '>');
        }

        $items = $this
            ->orderForNext()
            ->get($cursor->getLimit() + 1, $columns);

        $more = $items->count() > $cursor->getLimit();

        return new CursorPaginator(
            $items->slice(0, $cursor->getLimit()),
            $more,
            $cursor,
            $this->key
        );
    }