use $timeout on notify since it should happen after promise is returned