private static function collectArguments(
        \SplObjectStorage $arguments,
        array $resolvers,
        object $message,
        KernelContext $context
    ): array {
        $preparedArguments = [];

        /** @var \ServiceBus\Common\MessageHandler\MessageHandlerArgument $argument */
        foreach ($arguments as $argument)
        {
            foreach ($resolvers as $argumentResolver)
            {
                if (true === $argumentResolver->supports($argument))
                {
                    /** @psalm-suppress MixedAssignment Unknown data type */
                    $preparedArguments[] = $argumentResolver->resolve($message, $context, $argument);
                }
            }
        }

        /** @var array<int, mixed> $preparedArguments */

        return $preparedArguments;
    }