1) в POST методе не нужен в конце `await next()`
в принципе, когда обрабатываете конечные пути, `next` не нужен, он нужен только для middleware, когда надо запрос пустить дальше.
2) раз начали работать с async/await - работайте только с ними, не используйте promise
try {
await user.save()
ctx.body = user;
} catch (err) {
ctx.throw(403, "Cannot create user or user is already created!");
}