I, and then every junior I’ve onboarded as well, struggled to grasp just how important the naming conventions are for everything to just work. Models and tables must be named a certain way or you’ll be scratching your head. Model policies must be named a certain way. On and on. You can override all those, of course, but it’s just another gotcha.
If you want to use PHP, and you want to be productive, there’s no other choice in my opinion. I will say, the brain behind it is quite opinionated and most of those opinions are correct. If you don’t agree with those opinions, you will probably find yourself hating it and fighting the Laravel Magic. Give in to the magic and get shit done.