File: //home/marketing.cfbon.ru/public_html/app/Jobs/SendPushToNotificationJob.php
<?php
namespace App\Jobs;
use App\Services\FirebaseNotificationService;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Foundation\Queue\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class SendPushToNotificationJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, Batchable;
    public array $taskData;
    protected array $tokens;
    protected string $title;
    protected ?string $body;
    protected ?string $img;
    public function __construct($taskData)
    {
        $this->taskData = $taskData;
        $this->tokens = $taskData['tokens'];
        $this->body = $taskData['body'] ?? '';
        $this->title = $taskData['title'];
        $this->img = $taskData['img'] ?? '';
    }
    public function handle(FirebaseNotificationService $firebaseService) : void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
        try {
            $response = $firebaseService->sendNotification($this->tokens, $this->title, $this->body, $this->img);
        } catch (\Throwable $e) {
            Log::error($e->getMessage());
            $this->fail($e);
        }
    }
}