code: def possibly_award(self, **state):
          
          assert "user" in state
          if self.async:
              from .tasks import AsyncBadgeAward
              state = self.freeze(**state)
              AsyncBadgeAward.delay(self, state)
              return
          self.actually_possibly_award(**state)
docs: Will see if the user should be awarded a badge.  If this badge is
          asynchronous it just queues up the badge awarding.