docs: async def _build_state(self,
                             request: Request,
                             message: BaseMessage,
                             responder: Responder) \
              -> Tuple[
                  Optional[BaseState],
                  Optional[BaseTrigger],
                  Optional[bool],
              ]:
          """
          Build the state for this request.
          """
  
          trigger, state_class, dnr = await self._find_trigger(request)
  
          if trigger is None:
              if not message.should_confuse():
                  return None, None, None
              state_class = self._confused_state(request)
              logger.debug('Next state: %s (confused)', state_class.name())
          else:
              logger.debug('Next state: %s', state_class.name())
  
          state = state_class(request, responder, trigger, trigger)
          return state, trigger, dnr