the gorm official documentation doesn't mention the difference between the three ways of initialize a new *gorm.DB instance. But it seems WithContext is the one I need and Session is giving me all kinds of weird behavior.
*gorm.DB
WithContext
Session