Power of subqueries:
Select Subquery
$users = User::addSelect(['latest_post' => Post::select('title')
->whereColumn('user_id', 'users.id')
->latest()
->take(1)
])->get();Order by Subquery
$users = User::orderByDesc(
Post::select('created_at')
->whereColumn('user_id', 'users.id')
->latest()
->take(1)
)->get();Where Subquery
$users = User::whereIn('id', function ($query) {
$query->select('user_id')
->from('posts')
->where('is_published', true);
})->get();