Laravel OrderBy relationship counter

Laravel OrderBy relationship counter
Photo by Mohammad Rahmani / Unsplash

If you want to count the number of results from a relationship without actually loading them you may use the "withCount" method, which will place a "{relation}_count" column on your resulting models.

For example:

$posts = App\Post::withCount('comments')->get(); 

foreach ($posts as $post) {
echo $post->comments_count; 
} 

Other example: 
$posts = App\Post::withCount('comments')->orderBy('comments_count', 'desc')->paginate(50);