model ->select($select) ->with($relationships); if (!empty($data['datacenter_id'])) { $query->where('datacenter_id', $data['datacenter_id']); } if (!empty($data['host_id'])) { $query->where('host_id', $data['host_id']); } if (!empty($data['name'])) { $query->where('name', 'like', '%' . $data['name'] . '%'); } if (!empty($withCount)) { $query->withCount($withCount); } if ($returnQuery) { return $query; } if (!empty($data['paginate']) || !empty($data['page'])) { return $query->paginate( $data['per_page'] ?? 15 ); } return $query->get(); } public function findBy(string $key = '', string|int|null $value = '') { if (empty($key) || empty($value)) { return false; } return $this->model->where($key, $value)->first(); } }