If you haven’t read them already there are some interesting stuff here Know your engine limitations! and here Draw calls and Defold and to a lesser extent here Texture Management in Defold
I don’t think the graphics are the problem but the CPU. Actually, looking a bit closer your render script does take a long time on your laptop.
Your rendering doesn’t seem to take a lot of time, but how many draw calls do you have?
What does seem to take a lot of time is the physics, the games I have worked on have barely used any physics so the only pointer I have here is to try to use static objects as opposed to Dynamic and Kinematic, of course try to keep collision objects to a minimum.
It does look like you do quite a bit in update loops, for this kind of game it is inevitable, but try to update positions and such with the engine and C (go.animate) and not the in LUA as mentioned in the first link of this post.