The guide for Eloquent http://laravel.com/docs/4.2/eloquent contains the following:-
Eager Load Constraints
Sometimes you may wish to eager load a relationship, but also specify a condition for the eager load. Here's an example:
$users = User::with(array('posts' => function($query)
{
$query->where('title', 'like', '%first%');
}))->get();
In this example, we're eager loading the user's posts, but only if the post's title column contains the word "first".
How do you turn this around, so that you only get Users that have a post where the title column contains the word "first"?
In other words, I want ONLY the Users that have a posts containing the word "first" and I want to eager load those posts. If there are 10 Users and 3 of those Users have a post containing the word "first", then my get() will return just 3 users, each with their eager loaded posts that have a title containing "first".