There are a number of permissions available to be used in staff roles to enable your invoicing workflows.   The Invoice Project permission allows staff to invoice a project by hiding the Quick Invoice function in the project's quick actions menu.   Note that if staff have access to be able to raise a stock sale, they can invoice it.

If staff have the permission to raise an invoice, you can refine what they can and can't do with the invoices raised.

The Invoices permissions allow access to the invoices dashboard.   If staff have Invoice Project enabled  but all Invoices permissions disabled, they will be able to raise draft invoices only but not manage them.

Regardless of the ability to raise invoices, access to reporting on invoicing has to be managing separately.