public function setDeferredChannel($channel, callable $callback) { if (isset($this->channels[$channel])) { throw new InvalidArgumentException("Channel {$channel} is already defined"); } $this->deferredChannels[$channel] = $callback; }