Joins and Relationship Existence Queries in Laravel: join, leftJoin, and whereHas
whereHas() filters parent records by a condition on their related data without ever actually joining tables — a genuinely different mechanism from join(), even though both can produce a similar-looking result.