If you only want to authenticate users that are also "activated", for example, it's as simple as passing an extra argument to Auth::attempt().
No need for complex middleware or global scopes.
Auth::attempt( [ ...$request->only('email', 'password'), fn ($query) => $query->whereNotNull('activated_at') ], $this->boolean('remember'));
Tip given by @LukeDowning19
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
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Laravel 13 Starter Kit Teams and Customizations
10 lessons
33 min
[FREE] Laravel 13 for Beginners: 3 Demo Projects
5 lessons
29 min