Зачем городить то, что уже сделано во фреймворке? В Laravel есть механизм уведомлений (Notification). Уведомление отправляется через каналы (Notification Channel). И вся ваша работа сводится к описанию для каждого класса уведомления метода конвертации внутренней сущности в объект, отправляемый в канал. А каналов уведомлений много и список ограничен лишь вашей фантазией, хоть через антену в соседнюю галактику.
Поэтому ваша задача решается по сути дела двумя классами: ListUpdatedNotification и PostHookNotificationChannel.
Естественно, канал может быть другим, хоть те же подключения по WebSocket.
Remote observer