It's tough to pick the best design, but I think using WebSockets could work well here. You can check out Laravel Reverb and Laravel Echo for that. If you look at the official Laravel docs, there's an example that’s pretty similar to what you're working on.
For example, imagine your application is able to export a user's data to a CSV file and email it to them. However, creating this CSV file takes several minutes so you choose to create and mail the CSV within a queued job. When the CSV has been created and mailed to the user, we can use event broadcasting to dispatch an App\Events\UserDataExported event that is received by our application's JavaScript. Once the event is received, we can display a message to the user that their CSV has been emailed to them without them ever needing to refresh the page.
In the question you mention
recurrent axios calls every x seconds?
I think you’re talking about polling, which could help with your issue, but it comes with its challenges. If you decide to go for polling, you can check out the Inetra documentation; there’s a section that covers polling in detail.
Resources -