Когда пользователь добавляет пост то всем подписчикам приходит уведомления.
Есть слушатель который срабатывает когда создается пост добавляет работу в очередь
class AddPostNotify
{
public function handle(PostCreated $event)
{
dispatch(new AddPostNotificationJob($event->post));
}
}
Эта работа добавляет нотификации в очередь
public function handle()
{
Subs::query()->each(function (Notification $notification) {
$notification->user->notify(new AddPostNotification($this->post));
});
}
Сама нотификация
class AddPostNotification extends Notification implements ShouldQueue
{
use Queueable;
private Post $post;
public function __construct(Post $post)
{
$this->post = $post;
}
public function via($notifiable)
{
$this->onQueue('notification');
return $notifiable->isNotificationEnabled(self::class) ? ['broadcast', 'database'] : [];
}
public function toArray($notifiable)
{
return [
//
];
}
public function toDatabase($notifiable)
{
return new BroadcastMessage([
'post' => $this->post,
]);
}
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'data' => [
'post' => $this->post,
],
]);
}
}
Так же по такому принципу реализовал нотификации о добавлении комментирования.
Правильная ли логика? Или можно сделать что-то получше ?