Иногда вам приходится отрицать ваш тест и заставлять ветвь просто немного продвигаться вперед, а провал - безусловный переход к вашему месту вне пределов дальности.
Я думаю, что вы можете достичь с помощью метода orderByRaw()
. С помощью этого метода вы можете заказать книги со средним общим баллом
Book::select("books.*")
->join("book_reviews br","br.book_id","=","books.id")
->orderByRaw("AVG(br.overall_point) desc")
->groupBy("books.id")
->take(10) # or how many book you want
->get();