'Vonage\Messages\Webhook\InboundSMS', 'mms' => 'Vonage\Messages\Webhook\InboundMMS', 'rcs' => 'Vonage\Messages\Webhook\InboundRCS', 'whatsapp' => 'Vonage\Messages\Webhook\InboundWhatsApp', 'messenger' => 'Vonage\Messages\Webhook\InboundMessenger', 'viber_service' => 'Vonage\Messages\Webhook\InboundViber' ]; public static function createFromArray(array $data): mixed { if (!isset($data['channel'])) { throw new InvalidArgumentException("The 'channel' key is missing in the incoming data."); } $channel = $data['channel']; if (!array_key_exists($channel, self::$classMap)) { throw new InvalidArgumentException("Unable to determine incoming webhook type for channel: {$channel}"); } return new self::$classMap[$channel](); } }