This is a pretty big question because Laravel Nova itself doesn't support this. The actions itself always return only one response, so you can't handle it using that approach.
An alternative solution is redirecting the user to a page in Nova where you can show the processing part. You then also need to set up a queue that will handle all the invoices. Based on the data in the database you can decide how many of the invoices have been generated and display it on that page. You can create your own Nova tool that will handle the ajax requests for you, so you can poll it every x seconds or use web sockets to keep track of the count.
There is no a few lines of code solution for you here. You have to remember that Nova works for 80% of the cases and this is not one of them.