1.) As which user does php-fpm run, and does this user belong to a group? If so, which group?
2.) As which user does nginx run, and does this user belong to a group? If so, which group?
Generally speaking, your entire project tree, on the filesystem, should be owned by the same user and group.
For example, my storage directory looks like this (I'm not using Forge, but the point still stands):
drwxr-x--- 6 web1 client1 4.0K Jan 5 15:31 storage
In my case, php-fpm runs as the web1 user, and nginx runs as the www-data user. web1 is in the client1 group, and client1 (which, again, is a group) is in the www-data group.
(I'm running Ubuntu 16.04 LTS in a relatively "vanilla" configuration.)
As you can see from the permissions set on my storage directory, 0750 should be sufficient, if you have configured everything appropriately.
The subdirectories look the same:
drwxr-x--- 6 web1 client1 4.0K Jan 5 15:31 .
drwxr-x--- 13 web1 client1 4.0K Jan 5 15:32 ..
drwxr-x--- 3 web1 client1 4.0K Jan 5 15:31 app
drwxr-x--- 2 web1 client1 4.0K Jan 5 15:31 files
drwxr-x--- 5 web1 client1 4.0K Jan 5 15:31 framework
drwxr-x--- 2 web1 client1 4.0K Jan 5 15:31 logs
My advice is to untangle this problem once and for all, determine which ownership and permissions are necessary, and create a simple shell script that is capable of "fixing" both at any time, should this occur again in the future.
If you're able to answer the two questions I asked, above, I'm happy to provide additional guidance!