¿Cómo usar JOIN en Yii2 Active Record para modelo relacional?

Tengo 2 mesas llamadas Libros y Reseñas. La tabla de libros tiene una relación de uno a muchos con Reseñas.

Quiero buscar libros y ordenarlos por Comentarios.

Por ejemplo, si hay 10 libros disponibles y los libros tienen revisión en Revisiones, quiero buscar todos los libros utilizando la cláusula WHERE y contar las revisiones y luego ordenar todos los libros según el número de revisión.

Mi consulta SQL es como la siguiente:

Books::find() ->where([ 'and', ['like', 'books.bookName', $bookName], ['like', 'books.status', 'Enabled'] ]) ->joinWith(['reviews' => function ($q){ $q->select(['COUNT(*) as cnt']); }]) ->orderBy(['cnt' => 'DESC']) ->all(); 

Me está dando el siguiente mensaje de error:

SQLSTATE [42S22]: Columna no encontrada: 1054 Columna desconocida ‘cnt’ en ‘cláusula de orden’

¿Que me estoy perdiendo aqui?

Utilice joinWith . Para mas ver

Por ejemplo, para su código de caso así:

 Books::find() ->joinWith(['reviews' => function ($q) { $q->select(['COUNT(*) as cnt']); }]) ->orderBy(['cnt' => 'DESC']) ->all(); 

EDITAR: Encuentro mejor solución.

 Books::find() ->joinWith(['reviews']) ->select(['*', 'COUNT(reviews.*) as cnt']) ->groupBy('RELATION_FIELD(Example: reviews.book_id)') ->orderBy(['cnt' => 'DESC']) ->all();