$filters * @return Collection */ public function getAll(array $filters = []): Collection; /** * Find a practitioner document by ID. * * @param int $id * @return PractitionerDocument|null */ public function findById(int $id): ?PractitionerDocument; /** * Get documents by practitioner ID. * * @param int $practitionerId * @return Collection */ public function getByPractitionerId(int $practitionerId): Collection; /** * Get documents by type. * * @param string $docType * @return Collection */ public function getByDocumentType(string $docType): Collection; /** * Get valid documents (not expired). * * @return Collection */ public function getValid(): Collection; /** * Get expired documents. * * @return Collection */ public function getExpired(): Collection; /** * Get documents with pagination. * * @param int $perPage * @return array{documents: Collection, pagination: array} */ public function getPaginated(int $perPage = 10): array; /** * Get document statistics. * * @return array */ public function getStatistics(): array; }