where('source_id', $data['source_id']) ->with(['city', 'state']) ->whereNull('deleted_at') ->orderBy('is_primary', 'desc') ->get(); return $allAddresses; } public function one($id): Address { return Address::find($id); } public function create(array $data): Address { return Address::create($data); } public function update(array $data, int $id): Address { $address = Address::findOrFail($id); if (isset($data['is_primary']) && $data['is_primary']) { Address::where('source', $address->source) ->where('source_id', $address->source_id) ->where('id', '!=', $id) ->update(['is_primary' => false]); } $address->fill($data); $address->save(); return $address->fresh(); } public function delete(int $id): bool { $address = Address::findOrFail($id); return $address->delete(); } }