`db.put` already returns a promise/is wrapped by `$q`; see [tlvince/angular-pouchdb#qify](https://github.com/tlvince/angular-pouchdb/blob/db6fae6bc871c175c169d9d61a43c8800cde836c/angular-pouchdb.js#L5-L23).

Couldn't you just `return db.put(item, item.uuid)`?