Two reasons:

  * It avoids handing over too much responsibility to the model, because that’s already handling all of the usual modelly things
  * The controller handles save failures and indexing failures differently: because a failure to index isn’t actually a failure to do what the API user requested (create or update a need), it should still return a `200` status code if we saved the need successfully. I think putting the two operations together into the `Need` model would make this distinction less obvious.