¿Cómo paginar los registros asociados?

Products belongsToMany Categories yCategories hasMany Productsdentro de miProduct Ver Estoy mostrando una lista de todas sus categorías, pero quiero paginar o limitar estos resultados.

Mi código actual enProductsController es:

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

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

Sé que necesito configurar$this->paginate() para paginar algo, pero no puedo hacerlo funcionar para paginar las categorías dentro del producto. Espero que me puedan entender.

ACTUALIZACIÓN: Actualmente tengo esto pasando:

$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();

El límite funciona pero todavía no sé paginar

Respuestas a la pregunta(1)

Su respuesta a la pregunta