Como limitar associações contidas por registro / grupo?

Tenho um modelo, artigos, que tem muitos resumos. Quero carregar os 10 artigos mais recentes e, para cada artigo, o Resumo com o maior número de pontos. Minha função é assim:

public function getArticles($category, $viewName) {
            $subArticles = $this->Articles->findByCategory($category)->contain([
                    'Abstracts' => function ($q) {
                            return $q
                                    ->select(['body', 'points', 'article_id'])
                                    ->where(['Abstracts.approved' => true])
                                    ->limit(10)
                                    ->order(['Abstracts.points' => 'DESC']);
                    }
            ])
            ->limit(10)
            ->order(['Articles.created' => 'DESC']) ;
            $this->set( $viewName . 'Articles', $subArticles );
    }

O resultado que recebo não é o que pretendo. Olhando através do SQL, o primeiro CakePHP está obtendo o articles.id de tudo na categoria (ótimo). Então, o CakePHP entra na tabela Abstracts, usando os 10 articles.id que acabou de encontrar, e solicita os 10 Abstracts com os votos mais altos (que pertencem a esses artigos

O problema é que eu quero 1 resumo para cada artigo, não os 10 resumos pertencentes a qualquer artigo nessa categoria. Como posso consertar isso? Obrigado

EDITA

ndm sugeriu que esta era uma duplicata deUsando limit () no modelo contido então tentei a solução lá. Adicionei isto ao meu modelo:

 $this->hasOne('TopAbstract', [
            'className' => 'Abstracts',
            'foreignKey' => 'abstract_id',
            'strategy' => 'select',
            'sort' => ['TopAbstract.points' => 'DESC'],
            'conditions' => function ($e, $query) {
            $query->limit(1);
            return $e;
    } ]);

E então eu tento encontrar os artigos por categoria, com contains (['TopAbstract']), apenas isso mata meu SQL. Ele morre horrivelmente:

Error: SQLSTATE[HY000]: General error: 1 near ")": syntax error

Debug nem mostra a consulta que a matou, então não sei como depurar est

EDITA

Fale comigo um pouco, mas o erro está definitivamente na parte 'condições' do hasOne. Eu tiro isso e funciona bem. Não consegue encontrar um exemplo de como isso deve parecer nas interwebs ... alguém tem alguma idéia?

questionAnswers(1)

yourAnswerToTheQuestion