You can also check:
1 - The apache root dir should point to the /home/user/laraveapp/public/
2 - Check AllowOverride All in your virtualhost:
Example
<VirtualHost *:80>
ServerName shoot.mywire.org
ServerAlias www.shoot.mywire.org shoot.mywire.org
DocumentRoot "/home/shoot/public_html/public"
<Directory "/home/shoot/public_html/public">
AllowOverride all
Require all granted
Allow from all
Order allow,deny
Options +Indexes
</Directory>
<Proxy "unix:/var/run/php-fpm/shoot80.sock|fcgi://php-fpm">
ProxySet disablereuse=off
</Proxy>
<FilesMatch \.php$>
SetHandler proxy:fcgi://php-fpm
</FilesMatch>
<IfModule mod_headers.c>
Header unset Strict-Transport-Security
Header always set Strict-Transport-Security "max-age=0;includeSubDomains"
</IfModule>
ErrorLog /home/shoot/error.log
TransferLog /home/shoot/transfer.log
</VirtualHost>
3 - Check via command line that the symbolic link is set (permissions are in php-fpm case) also public need to have at least 755 permission
cd public
ls -als stor*
0 lrwxrwxrwx 1 shoot shoot 43 25 mag 2021 storage -> /home/inalto/public_html/storage/app/public
4 - Check in apache conf that you have Options FollowSymLinks
Hope it helps :)