gem lock specifies money-rails gem version
use create! in createProductWithCategoryService as the return value was not been checked
add back in transaction in createProductWithCategoryService.
refactor createProductWithCategory to take *args for self.create, and fix spec to match actual implementation
add forbidden attributes protection to category model