_notifyDocument(rooms, notification, { fromCluster = true } = {}) {
    const channels = [];

    for (const room of rooms) {
      const hotelClerkRoom = this.module.hotelClerk.rooms.get(room);

      if (hotelClerkRoom === undefined) {
        continue;
      }

      for (const [channelId, channel] of hotelClerkRoom.channels.entries()) {
        const executeOnNode = fromCluster ? channel.cluster : true;
        const matchScope =
          channel.scope === "all" || channel.scope === notification.scope;

        if (matchScope && executeOnNode) {
          channels.push(channelId);
        }
      }
    }

    if (channels.length === 0) {
      return Bluebird.resolve();
    }

    return this._dispatch("notify:document", channels, notification);
  }
Broadcasts a notification about a document change or a
real-time message.

When this method is called from the node who received
the request triggering notification, then every channel is notified
regardless of the "cluster" option.

When this method is called from the cluster synchronization,
then only the channels having the "cluster: true" option are notified

@param {Array} rooms - Subscribed rooms to notify
@param {DocumentNotification} notification
@param {object} [options] - fromCluster (true)

@returns {Promise}