Why does the ChoreController know that a chore, once completed, should create a CompletedChore? 

Consider the three possible ways to remove this knowledge: 
1. Use an ActiveRecord callback to detect if the Chore last_completed date is changing and have that create a CompletedChore
2. Creating a method called `@chore.completed_by!(user)` that creates the `CompletedChore?`
3. Creating a class that contains all the responsibility for updating a chore from the params and then creating the compelted chore if necessary.

All of these have pros and cons, one may be impossible. Think about them.