AntJanus gave the basic approach here. It did work for my Hello World test, not sure if there are potential issues waiting, such as with maintenance or framework updates.
Basically install locally (on Composer so far), zip it all up and upload the framework directory to a private folder above public_html.
The public entry point can be directly in public_html if the site is for the domain root, or in a sub-folder. Edit both public/index.php and laravel/bootstrap/paths.php to be able to find each other.
Paths.php looked a bit like this
[29] 'public' => __DIR__.'/../public_html/laravel', //laravel is sub-directory