Спасибо всем
$postLetters = PostOffice::query()
->whereNull('parent_id')
->with(['children' => function($query) use ($lettersId) {
$query->whereHas('letters', function ($query) use ($lettersId) {
$query->whereIn('
letters.id', $lettersId)->filter();
});
$query->withCount('letters');
}, 'letters'])
->get();
Может кому нужен был