Indent.
When using a variable cross transaction it's best to merge it into the current GORM transaction by calling merge() rather than looking it up. It help prevent errors with stale data.

project.merge() instead of reloading from data.