To get better shadows in blender eevee here’s the list of settings I check:
First turn “ambient occlusion” on. Turn up the distance to 1 instead of 0.2 This will make the shadows darker in the crevices thus emphasizing them.
Second, turn “bloom” on. This will cause the areas of reflected light to have an increased illuminated effect. However, the default numbers here are fine, make them too high and it makes the image hazy.
Third, enable “screen space reflections.” This allows light to reflect back on the objects from other surfaces such as the light from the floor to the back of the objects. Under the same category, enable refraction (mostly used for glass).
Fourth, under the “shadows” tab increase the “cube size” from 512 to 1024 px. Below that enable “High Bit Depth.” This reduces the jaggedness of shadows in the eevee render engine.
Now for the light sources. If you are using a lamp to illuminate the scene, if the radius of the light source is large: the shadows will be soft / if the radius of the light is small then the shadows will be hard or sharp. It is recommended to have the size of the light source somewhere in the middle (slightly blurry, but distinct in the direction of the light).
I noticed that in the render it appears that not all of the lights are present in the scene. It could be that you have them in another collection that aren’t enabled for render and/or that the objects themselves don’t have them checked for appearing in the render (see below). Hope this helps. If not, let me know and I’ll think of more solutions.
Here’s the render without the settings:
With the settings: