<?php

namespace App\Http\Controllers;

use App\FasetVisit;
use App\Notifications\GeneralInterestNotification;
use Illuminate\Http\Request;

class NotificationController extends Controller
{
    public function sendNotification()
    {
        $all_faset_vists = FasetVisit::all();
        Notification::send($all_faset_vists, new GeneralInterestNotification());
        return response()->json(['status' => 'success']);
    }
}

<?php

namespace App\Http\Controllers;

use App\FasetVisit;
use App\Notifications\GeneralInterestNotification;
use Carbon\Carbon;
use Notification;
use Illuminate\Http\Request;

class NotificationController extends Controller
{
    public function sendNotification()
    {
        $hours = 0;
        FasetVisit::chunk(30, function ($chunk) use (&$hours) {
            $when = Carbon::now()->addHours($hours);
            Notification::send($chunk, (new GeneralInterestNotification())->delay($when));
            $hours++;
        });
        return response()->json(['status' => 'success']);
    }
}

Add chunking to send 30 messages per hour to overcome GT rate limiting
Add chunking to send 30 messages per hour to overcome GT rate limiting
