I'm not saying this shouldn't happen within one save, but that you're re-using a method (actually a filter) now to retrieve the family, but this has the side effect of setting the "family" attribute on the model.  If you're only retrieving this, the method should just return it, then let the filter set the attribute.