In Eloquent, you can combine whereHas() and orDoesntHave() in one sentence.
User::whereHas('roles', function($query) { $query->where('name', 'Admin');})->orDoesntHave('roles')->get();
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses on Laravel Daily
[NEW] Mobile Apps: React Native vs Flutter vs NativePHP?
8 lessons
55 min
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Laravel 13 Eloquent: Expert Level
41 lessons
1 h 34 min