I have spent a lot of time trying to change the public directory to public_html in laravel 10, I am posting this so that it may be useful for others and save them time. all you need to do is make the following changes in vite.config.js and AppServiceProvider files and change directory name to public_html.
Add this lines to register function in AppServiceProvider: $this->app->usePublicPath($this->app->basePath() . '/public_html');
And add this line to laravel plugin in vite.config.js:
publicDirectory: 'public_html',