/**
  * @param IncomingPhysicalMessageContext $context
  * @param callable                       $next
  */
 public function invoke($context, callable $next)
 {
     $physicalMessage = $context->getMessage();
     $logicalMessage = $this->extractWithExceptionHandling($physicalMessage);
     if (!$logicalMessage) {
         throw new MessageDeserializationException($physicalMessage->getMessageId());
     }
     $next($this->incomingContextFactory->createLogicalMessageContext($logicalMessage, $context));
 }