protected function referencesMany(string $entity, string $field, bool $cacheable = true)
    {
        $referencedIds = (array) $this->$field;

        if (ObjectIdUtils::isObjectId($referencedIds[0] ?? '')) {
            foreach ($referencedIds as $key => $value) {
                $referencedIds[$key] = new ObjectId($value);
            }
        }

        $query = ['_id' => ['$in' => array_values($referencedIds)]];

        $entityInstance = Ioc::make($entity);

        if ($entityInstance instanceof Schema) {
            $dataMapper = Ioc::make(DataMapper::class);
            $dataMapper->setSchema($entityInstance);

            return $dataMapper->where($query, [], $cacheable);
        }

        return $entityInstance::where($query, [], $cacheable);
    }