def __call__(self, promise: Callable, is_group_msg: bool = False) -> Callable:
        """
        Processes callables in throughput-limiting queues to avoid hitting limits (specified with
        :attr:`burst_limit` and :attr:`time_limit`.

        Args:
            promise (:obj:`callable`): Mainly the ``telegram.utils.promise.Promise`` (see Notes for
                other callables), that is processed in delay queues.
            is_group_msg (:obj:`bool`, optional): Defines whether ``promise`` would be processed in
                group*+*all* ``DelayQueue``s (if set to :obj:`True`), or only through *all*
                ``DelayQueue`` (if set to :obj:`False`), resulting in needed delays to avoid
                hitting specified limits. Defaults to :obj:`False`.

        Note:
            Method is designed to accept ``telegram.utils.promise.Promise`` as ``promise``
            argument, but other callables could be used too. For example, lambdas or simple
            functions could be used to wrap original func to be called with needed args. In that
            case, be sure that either wrapper func does not raise outside exceptions or the proper
            :attr:`exc_route` handler is provided.

        Returns:
            :obj:`callable`: Used as ``promise`` argument.

        """
        if not is_group_msg:  # ignore middle group delay
            self._all_delayq(promise)
        else:  # use middle group delay
            self._group_delayq(self._all_delayq, promise)
        return promise