Manage an Invoice status. You can create an Invoice, default status - Draft. Then user can add all the Invoice Items. When finished move the status to Finalized/ Raised.
I personally do not like to use custom state for such examples because as you said