Запрос SQL:
SELECT p.id, p.data, u.id as user_id, SUM(su.status) as sum_status
FROM `posts` as p
LEFT JOIN projects as p ON p.id = p.project_id
LEFT JOIN users as u ON u.id = p.user_id
LEFT JOIN service_user as su ON su.user_id = u.id
GROUP BY su.user_id, p.id, p.data
Итоговый результат:
$posts = DB::table('posts')
->leftJoin('projects', 'posts.project_id', '=', 'projects.id')
->leftJoin('users', 'projects.user_id', '=', 'users.id')
->leftJoin('service_user', 'users.id', '=', 'service_user.user_id')
->leftJoin('services', 'service_user.service_id', '=', 'services.id')
->groupBy('service_user.user_id', 'posts.id', 'posts.data')
->select('posts.id', 'posts.data', 'service_user.user_id', DB::raw("SUM(service_user.status) as sum_status") )
->paginate(50);