. */ namespace App\Listeners; use App\Events\ApplicationApprovedEvent; use App\Notifications\ApplicationApproved; use Illuminate\Support\Facades\Log; class PromoteUser { /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param ApplicationApprovedEvent $event * @return void */ public function handle(ApplicationApprovedEvent $event) { Log::info('User '.$event->application->user->name . 'has just been promoted (application approved)'); $event->application->setStatus('APPROVED'); $event->application->response->vacancy->decrease(); $event->application->user->assignRole('reviewer'); $event->application->user->notify(new ApplicationApproved($event->application)); } }