Filter with whereHas:
Basic whereHas
$users = User::whereHas('posts', function ($query) {
$query->where('is_published', true);
})->get();With Count
$users = User::whereHas('posts', function ($query) {
$query->where('is_published', true);
}, '>=', 5)->get();Nested Relationships
$users = User::whereHas('posts.comments', function ($query) {
$query->where('approved', true);
})->get();Or whereHas
$users = User::whereHas('posts')
->orWhereHas('comments')
->get();