Проблема с кодом, который у вас есть, заключается в том, что он ограничивает загруженные отношения, а не ограничивает исходные модели.
Чтобы ограничить модель по ее отношениям, вы можете использовать whereHas ()
SchoolClasesBranchesPivot::with('school', 'clases', 'branches')
->whereHas('branches', function ($query) {
$query->where('branches.id', 3);
})
->get();
Как говорится, для этого конкретного примера c можно использовать клавишу branches_id
в самой сводной таблице:
SchoolClasesBranchesPivot::with('school', 'clases', 'branches')
->where('branches_id', 3)
->get();