* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Jobs; use App\Mail\DeleteUser; use App\Models\User; 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\Mail; class SendDeleteUserMail implements ShouldQueue { use Dispatchable; use InteractsWithQueue; use Queueable; use SerializesModels; /** * The number of times the job may be attempted. */ public int $tries = 3; /** * SendDeleteUserMail Constructor. */ public function __construct(public User $user) { } /** * Execute the job. */ public function handle(): void { if ($this->attempts() > 2) { $this->delay(min(30 * $this->attempts(), 300)); } Mail::to($this->user)->send(new DeleteUser($this->user)); } }