. */ namespace App\Jobs; use App\Ban; use Carbon\Carbon; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Log; class ProcessDueSuspensions implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $bans; /** * Create a new job instance. * * @return void */ public function __construct() { } /** * Execute the job. * * @return void */ public function handle() { Log::debug('Running automatic suspension cleaner...'); $bans = Ban::all(); if (! is_null($bans)) { foreach ($this->bans as $ban) { $bannedUntil = Carbon::parse($ban->bannedUntil); if ($bannedUntil->isToday()) { Log::debug('Lifted expired suspension ID '.$ban->id.' for '.$ban->user->name); $ban->delete(); } } } } }