async def rank(self):
        """
        Try to find a choice in what the user did:

        - If there is a quick reply, then use its payload as choice slug
        - Otherwise, try to match each choice with its intent
        """
        from bernard.platforms.facebook import layers as fbl

        choices = self.request.get_trans_reg('choices')

        if not choices:
            return

        if self.request.has_layer(fbl.QuickReply):
            return self._rank_qr(choices)
        elif self.request.has_layer(l.RawText):
            return await self._rank_text(choices)