Comments Logo
1.x
Essentials

Notifications

Comment notifications, subscriptions, and real-time updates.

Notification Types

Two notification classes are included:

CommentRepliedNotification

Sent to all thread subscribers when a new comment or reply is posted. The comment author is excluded from receiving their own notification.

UserMentionedNotification

Sent to a user when they are @mentioned in a comment. Self-mentions are ignored.

Channels

// config/comments.php
'notifications' => [
    'channels' => ['database'],
    'enabled' => true,
],

Available channels: 'database' and 'mail'. Add both to send email notifications alongside database notifications:

'notifications' => [
    'channels' => ['database', 'mail'],
    'enabled' => true,
],

Subscriptions

Users can subscribe to comment threads on any commentable model. Subscribers receive notifications when new comments are posted.

Auto-Subscribe

'subscriptions' => [
    'auto_subscribe' => true,
],

When enabled:

  • Users are auto-subscribed when they post a comment
  • Users are auto-subscribed when they are @mentioned

Manual Subscription

Users can toggle their subscription using the subscribe/unsubscribe button in the comments UI.

Programmatic Access

use Relaticle\Comments\Models\Subscription;

// Check subscription status
Subscription::isSubscribed($commentable, $user);

// Subscribe/unsubscribe
Subscription::subscribe($commentable, $user);
Subscription::unsubscribe($commentable, $user);

// Get all subscribers for a commentable
$subscribers = Subscription::subscribersFor($commentable);

Events

EventTriggerBroadcasts
CommentCreatedNew comment or replyYes
CommentUpdatedComment editedYes
CommentDeletedComment soft-deletedYes
CommentReactedReaction added/removedYes
UserMentionedUser @mentionedNo

Real-time Updates

Broadcasting

Enable broadcasting for instant updates across browser sessions:

// config/comments.php
'broadcasting' => [
    'enabled' => true,
    'channel_prefix' => 'comments',
],

Events are broadcast on private channels: {prefix}.{commentable_type}.{commentable_id}

This requires Laravel Echo and a broadcasting driver (Pusher, Ably, etc.) configured in your application.

Polling Fallback

When broadcasting is disabled, the Livewire component polls for updates:

'polling' => [
    'interval' => '10s',
],

Set to null to disable polling entirely.

Disabling Notifications

'notifications' => [
    'enabled' => false,
],

This disables all notification dispatching. Subscriptions and events still work, but no notifications are sent.

Copyright © 2026