docs: def enact(self, billing_cycle, disable_if_done=True):
          """Enact this RecurringCost for the given billing cycle
  
          This will:
  
            - Create a RecurredCost and the relevant Transactions & Transaction Legs
            - Mark this RecurringCost as disabled if this is its final billing cycle
          """
          as_of = billing_cycle.date_range.lower
          if not self.is_enactable(as_of):
              raise CannotEnactUnenactableRecurringCostError(
                  "RecurringCost {} is unenactable.".format(self.uuid)
              )
  
          if self.has_enacted(billing_cycle):
              raise RecurringCostAlreadyEnactedForBillingCycle(
                  'RecurringCost cost {} already enacted for {}'.format(self, billing_cycle)
              )
  
          with db_transaction.atomic():
              recurred_cost = RecurredCost(
                  recurring_cost=self,
                  billing_cycle=billing_cycle,
              )
              recurred_cost.make_transaction()
              recurred_cost.save()
  
          if disable_if_done:
              self.disable_if_done(billing_cycle)