problem polega na tym, że funkcja strzałki używa leksykalnego tego https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
zmień
userSchema.pre("save", (next) => {
const currentDate = new Date
this.updated_at = currentDate.now
next()
})
do
userSchema.pre("save", function (next) {
const currentDate = new Date()
this.updated_at = currentDate.now
next()
})