docs: def make_transaction(self):
          """Create the transaction for this RecurredCost
  
          May only be used to create the RecurredCost's initial transaction.
  
          Returns:
              Transaction: The created transaction, also assigned to self.transaction. None if the amount is zero.
          """
          if self.pk:
              raise CannotRecreateTransactionOnRecurredCost(
                  'The transaction for this recurred cost has already been created. You cannot create it again.'
              )
  
          amount = self.recurring_cost.get_amount(self.billing_cycle)
  
          # It is quite possible that there will be nothing to bill, in which
          # case we cannot create a transaction with no legs, nor can we create
          # legs with zero values. Therefore we don't create any transaction.
          if not amount:
              return None
  
          self.transaction = Transaction.objects.create(
              description='Created by recurring cost',
              date=self.billing_cycle.date_range.lower
          )
  
          # Use the SplitManager's custom queryset's split() method to get the
          # amount to be billed for each split
          splits = self.recurring_cost.splits.all().split(amount)
  
          # Create the transaction leg for the outbound funds
          # (normally to an expense account)
          self.transaction.legs.add(Leg.objects.create(
              transaction=self.transaction,
              amount=Money(amount, self.recurring_cost.currency),
              account=self.recurring_cost.to_account,
          ))
  
          for split, split_amount in splits:
              # Create the transaction legs for the inbound funds
              # (from housemate accounts)
              if split_amount:
                  self.transaction.legs.add(Leg.objects.create(
                      transaction=self.transaction,
                      amount=Money(split_amount * -1, self.recurring_cost.currency),
                      account=split.from_account,
                  ))
  
          return self.transaction