Как убрать распространение middleware с некоторых обработчиков?

я использую библиотеку для работы с Telegram Bot API и написал некоторое middleware, проверяющее наличие пришедшего id(по сообщению) на наличие в базе. Я предполагал, что осуществлю возможность пользователю подписаться и отписаться, но middleware распространяется на все message handlers, есть ли какая-то возможность убрать распространение с обработчика, ответственного за обработку подписки? Получается так, что пользователь не может подписаться из-за того, что middleware блокирует от него сообщения. Вот если что код:

class AccessMiddleware(BaseMiddleware):
    """
    Middleware that determines user access to bot functions.
    """

    @staticmethod
    async def user_among_subscribers(telegram_id: int) -> bool:
        """
        A method that checks the received user by an incoming
        message for the presence among the bot subscribers.
        """

        subscriber = await fetch_one('subscribers', 'telegram_id', telegram_id)
        return subscriber is not None

    async def on_process_message(self, message: Message, _) -> None:
        """
        Method that checks the user's rights to use the bot when
        receiving a message from it.
        """

        if not await self.user_among_subscribers(message.from_user.id):
            await message.answer(
                'Access denied. '
                'In order to use the functionality of this bot, '
                'you must subscribe.'
            )
            raise CancelHandler()

Просьба не советовать решения в лоб, что-то вроде следующего:

if message.text == '/subscribe':
    ...

Ответы (0 шт):