Pass authenticated user objects or session data explicitly inside Event payloads instead of relying on global session helpers in listeners.
Accessing global auth() or session() helpers inside event listeners breaks if the listener is pushed to a background queue where HTTP context is absent. Pass required data in event payloads.
namespace App\Events;
use App\Models\User;
class UserRegistered
{
// Pass user model explicitly in event constructor
public function __construct(public User $user) {}
}
- Queued event listeners execute outside HTTP request cycles with no session context
- Pass authenticated user models and contextual data inside Event constructors
- makes sure event listeners are decoupled and safely queueable
Related Tips
View all tips →Clean Up Complex Multi-Step Operations with Illuminate Pipeline
Process complex data sequences or multi-stage order checks through Laravel's built-in Pipeline facade to replace massive controller methods.
Reusable Tappable Scopes for Eloquent and Laravel Scout Queries
Extract query filtering logic into invokable scope classes that work interchangeably across Eloquent query builders and Laravel Scout search instances.