А зачем вам вообще писать запрос? Используйте связи между моделями, по связи получите коллекцию с постами у нее есть метод count. Проще не бывает.
Ок, теперь смотрите я вам примеры прямо из официального туториала кидаю
$user = App\User::find(1);
$user->posts()->where('active', 1)->get();
Есть такой вариант, выгрузить всех пользователей, а потом прокручивая в цикле фильтровать их статьи по параметрам и выводить количество.
Есть второй вариант, глава называется
Querying Relationship Existence// Retrieve all posts that have at least one comment...
$posts = App\Post::has('comments')->get();
// Retrieve all posts that have three or more comments...
$posts = Post::has('comments', '>=', 3)->get();
// Retrieve all posts that have at least one comment with votes...
$posts = Post::has('comments.votes')->get();
// Retrieve all posts with at least one comment containing words like foo%
$posts = Post::whereHas('comments', function ($query) {
$query->where('content', 'like', 'foo%');
})->get();
Это выведет всех пользователей у которых записи в связанной таблице удовлетворяют вашим критериям. У тех кого не вывело соотвественно 0 и всего то.