adds "throughForeignKey" option for hasMany