Hi @Edyta7510,
Great question. For reporting, these are virtually the same. In both cases, you’d filter by a deal property (either Deal stage is any of Recognized revenue or Invoiced is any of Yes or Invoice date is known).
Using the deal stage has advantage: HubSpot would automatically calculate the time in previous deal stage – allowing you to report on how long it usually takes for invoices to be paid. Nothing that you couldn’t build yourself with a calculated property however (time between close date and invoice date).
This automatic calculation for the time in deal stage would also be the disadvantage: You’d have to update the deal stage exactly on the day when the invoice is paid. With the custom properties option, you can backfill the invoice date a few days later, too.
Personally, I’d create custom properties.
Hope this helps!