Laravel Notification | Send Notification In Laravel 9 Example

Laravel provides sending notifications across a variety of delivery channels like, including email, SMS (via Vonage, formerly known as Nexmo), and Slack. Sometimes we need to send notification to mulitple users in laravel. So I am here to show you how to send notification in laravel 9 application. 

I will share with you a complete step by step guide like create notification, setup notification driver, send notification to multiple users etc in this laravel 9 notification tutorial. If you do not know how to send notification in laravel 9 then this example is for you.

So from this tutorial, you will learn laravel 9 send notification to multiple email address.  So let's start the tutorial:


Step 1: Download laravel 9

In this first step, we need a fresh laravel app. 

composer create-project laravel/laravel laravel-notification-system --prefer-dist


Step 2: Connect database

In this step, we will connect the database. So connect MySQL database like:




If you are using MAMP local server in macOS; make sure to append UNIX_SOCKET and DB_SOCKET below database credentials in the .env file.



Step 3: Create Notification Table

We need a notification table, so run the below command to create it:

php artisan notifications:table


It will generate notifications table like:

public function up()
    Schema::create('notifications', function (Blueprint $table) {


Now run php artisan migrate to create notifications table.


Read also: Laravel 9 Database Notification Example


Step 4: Create Notification

To generate a notification, we have a make:notification command. So run the below command to create a notification.

php artisan make:notification OffersNotification


To generate a notification with a corresponding Markdown template, you may use the --markdown option of the make:notification Artisan command:

php artisan make:notification OffersNotification --markdown=mail.invoice.paid


Now update this notification class like this:


namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class OffersNotification extends Notification
    use Queueable;
    private $offerData;
     * Create a new notification instance.
     * @return void
    public function __construct($offerData)
        $this->offerData = $offerData;
     * Get the notification's delivery channels.
     * @param  mixed  $notifiable
     * @return array
    public function via($notifiable)
        return ['mail','database'];
     * Get the mail representation of the notification.
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
    public function toMail($notifiable)
        return (new MailMessage)                    
            ->action($this->offerData['offerText'], $this->offerData['offerUrl'])
     * Get the array representation of the notification.
     * @param  mixed  $notifiable
     * @return array
    public function toArray($notifiable)
        return [
            'offer_id' => $this->offerData['offer_id']


Step 5: Create Route

Now update the route for notifications like:


use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NotificationController;

Route::get('/send-notification', [NotificationController::class, 'sendOfferNotification']);


Step 6: Create Controller

Now in this step, we have to create a controller to process sending notifications in laravel 9. So create it like:

php artisan make:controller NotificationController


Now update this file like:


namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Notification;
use App\Notifications\OffersNotification;

class NotificationController extends Controller
    public function __construct()
    public function index()
        return view('product');
    public function sendOfferNotification() {
        $userSchema = User::first();
        $offerData = [
            'name' => 'John Doe',
            'body' => 'You received an offer.',
            'thanks' => 'Thank you',
            'offerText' => 'Check out the offer',
            'offerUrl' => url('/'),
            'offer_id' => 007
        Notification::send($userSchema, new OffersNotification($offerData));
        dd('Task completed!');


Now run php artisan serve and visit the below URL to check the tutorial for sending notifications in laravel 9.




Read also: Laravel Web Socket Example with Event Broadcasting


Hope it can help you.


#laravel #laravel-9x #notification