Moved async worker to model so it runs after being commited to the DB