Dispatching/Delaying Jobs You can use the below commands to dispatch the jobs from the controller methods. /** Option 1 */ Queue::push(new MatchSendEmail($options)); /** Option 2 */ dispatch(new MatchSendEmail($options)); /** Option 3 */ (new MatchSendEmail($options))->dispatch(); /** Option 4 */ \App\Jobs\MatchSendEmail::dispatch($options); If you would like to dispatch a job conditionally, you may use the dispatchIf and dispatch unless methods. MatchSendEmail::dispatchIf($accountActive === true, $options); MatchSendEmail::dispatchUnless($accountSuspended === false, $options); Jobs can be dispatched at specific queues also. MatchSendEmail::dispatch($options)->onQueue(‘Email’); You can also delay your Jobs to a given time. MatchSendEmail::dispatch($options)->delay(now()->addMinutes(10)); We can also set tries and timeout properties to the job class, and the queue driver will use these values. After Dispatching a job, you need to process this queue; for this, you have ...