If the form takes longer to submit, then we need to show some kind of loading indicator and disable the submit button so the user wouldn't hit it twice.

It's pretty easy to achieve. In the posts Composable, we need a variable isLoading which will be true or false. When the button is clicked we just set it as true.
Also, we will reset the validation errors from the previous lesson. And if there are any errors, we need to set isLoading to false so that we could...
Really useful. Now I am wondering in the composable way the best approach for dealing with same logic repeated all over the place. That is, clearly the 'isLoading' and 'validaitonErrors' will be needed on each CRUD. So, should a generic frontend Javascript interface should be coded or considering consumption of third party package?
I have a tip for this. Use FormKit it can show errormrssages from the backend and also validate before submitting.
Can anyone answer why there isnt the await keyword after async in storePost? Was it overlooked or is it good practice to add it?