Category,Title,Subtitle という3つのモデルを例にする。

Category

<?php

class Category extends Eloquent
{
    protected $table = 'category';

    public function title()
    {
        return $this->hasMany('Title');
    }
}

Title

<?php

class Title extends Eloquent
{
    protected $table = 'title';

    public function subtitle()
    {
        return $this->hasMany('Subtitle');
    }
}

Subtitle

<?php

class Subtitle extends Eloquent
{
    protected $table = 'subtitle';
}

普通にEager loadする

$result = Category::with('title.subtitle')->get();

title に where を咬ませる

$result = Category::with(['title' => function ($query) {
    $query->where('title', 'like', '%first%');
}])->get();

Eager loadingにクエリを追加する場合はこのようにクロージャーを渡せば良い。

title と subtitle の両方にクエリを咬ませたい

$result = Category::with([
    'title' => function ($query) {
        $query->where('title', 'like', '%first%');
    },
    'title.subtitle' => function ($query) {
        $query->where('subtitle', 'like', '%second%');
    }
])->get();

subtitle にクエリを追加する場合のキー値は subtitle ではなく title.subtitle とする必要がある。