public function hasFirstOrFail(string $relation, array $where = [], array $with = [], int $hasAtLeast = 1)
    {
        $query = $this->make($with);

        $query = $this->applyWhere($query, $where);

        return $query->has($relation, '>=', $hasAtLeast)->firstOrFail();
    }