/** * @param string $messageName * @param null $payload * @param int $version * @param Uuid $uuid * @param \DateTimeImmutable $createdAt * @param array $metadata * @throws \RuntimeException */ protected function __construct($messageName, $payload = null, $version = 1, Uuid $uuid = null, \DateTimeImmutable $createdAt = null, array $metadata = []) { $this->assertCommonPayload($payload); $this->assertPayload($payload); parent::__construct($messageName, $payload, $version, $uuid, $createdAt, $metadata); }