info('Drip emails are disabled. Nothing to do.'); return self::SUCCESS; } $query = User::query() ->whereDate('onboarded_at', today()->subDay()) ->whereHas('bankingConnections') ->whereDoesntHave('mailLogs', function ($query): void { $query->where('email_type', DripEmailType::PaywallFollowUp); }); $queued = 0; $query->chunkById(100, function ($users) use (&$queued): void { foreach ($users as $user) { if ($user->hasProPlan()) { continue; } SendPaywallFollowUpEmailJob::dispatch($user); $queued++; } }); $this->info("Queued {$queued} paywall follow-up email(s)."); return self::SUCCESS; } }