code: def message_with_options(self, *, args=None, kwargs=None, **options):
          
          for name in ["on_failure", "on_success"]:
              callback = options.get(name)
              if isinstance(callback, Actor):
                  options[name] = callback.actor_name
  
              elif not isinstance(callback, (type(None), str)):
                  raise TypeError(name + " value must be an Actor")
  
          return Message(
              queue_name=self.queue_name,
              actor_name=self.actor_name,
              args=args or (), kwargs=kwargs or {},
              options=options,
          )
docs: Build a message with an arbitray set of processing options.
          This method is useful if you want to compose actors.  See the
          actor composition documentation for details.
  
          Parameters:
            args(tuple): Positional arguments that are passed to the actor.
            kwargs(dict): Keyword arguments that are passed to the actor.
            **options(dict): Arbitrary options that are passed to the
              broker and any registered middleware.
  
          Returns:
            Message: A message that can be enqueued on a broker.