In my opinion you're over complicating your solution.
I don't like answering with "why don't you instead do..." LOL ... but in this case I think you can greatly benefit from it.
You can use Inertia form helper to submit requests to your server (https://inertiajs.com/forms#form-helper).
With the helper you get access to progress, wasSuccessful , and a whole myriad of things.
So you can do something like:
const newAccountForm = useForm({
//Whatever props you need.
})
and then you simply need to submit such form, using the form helper post method. The first argument is the URL and the second one is the options for the request, where you can handle success and errors:
newAccountForm.post(route('accounts.create'), {
onSuccess: () => alert('Account created successfully'),
onError: () => alert('Something went wrong')
})
Additionally, the form object already comes with an errors property, which will contain any validation errors you send back from the server.
You can also use newAccountForm.processing to know if the form is being processed, and newAccountForm.progress to get back the progress of the form. And newAccountForm.wasSuccessful to know the form was submitted properly.