Como paginar registros associados?

Products belongsToMany Categories eCategories hasMany Productsdentro do meuProduct view Estou mostrando uma lista de todas as categorias, mas quero paginar ou limitar esses resultados.

Meu código atual emProductsController é:

$product = $this->Products
    ->findBySlug($slug_prod)
    ->contain(['Metas', 'Attachments', 'Categories'])
    ->first();

$this->set(compact('product'));

Eu sei que preciso definir$this->paginate() para paginar algo, mas não consigo fazê-lo funcionar para paginar as categorias dentro do produto. Espero que vocês possam me entender.

ATUALIZAÇÃO: Atualmente, eu tenho isso:

$product = $this->Products->findBySlug($slug_prod)->contain([
              'Metas',
              'Attachments',
              'Categories' => [
                'sort' => ['Categories.title' => 'ASC'],
                'queryBuilder' => function ($q) {
                  return $q->order(['Categories.title' => 'ASC'])->limit(6);
                }
              ]
            ])->first();

O limite funciona, mas ainda não sei como paginar

questionAnswers(1)

yourAnswerToTheQuestion