Here are the requirements:

* If `initial_invoice?` is `false`, `existing_invoice` always exists.
* If `initial_invoice?` is `true` and `existing_invoice` exists, I'd love to use the `existing_invoice`.

I'd love to refactor this code.

     existing_invoice = find_existing_invoice(invoice_obj[:id])
       invoice = if !initial_invoice?(invoice_obj) || existing_invoice.present?
                    existing_invoice
                  else
                    ac = Account.find_by(stripe_customer_id: invoice_obj[:customer])
                    create_initial_invoice(invoice_obj, ac)
                  end
    
      private
    
      def find_existing_invoice(id)
        Invoice.find_by(stripe_invoice_id: id)
      end
    
      def initial_invoice?(invoice_obj)
        sub_id = invoice_obj[:subscription]
        return false if sub_id.nil?
    
        sub = Stripe::Subscription.retrieve(sub_id)
        return false unless invoice_obj[:period_start] == sub[:created]
        true
      end

**update**

    invoice = if initial_invoice?(invoice_obj)
                return existing_invoice if existing_invoice.present?
    
                ac = Account.find_by(stripe_customer_id: invoice_obj[:customer])
                create_initial_invoice(invoice_obj, ac)
              else
                existing_invoice
              end