public function update(array $values): int
    {
        try {
            $query = (clone $this)->addUpdate($values)->apply($this->database->getTablePrefixer());
            $compiled = $this->database->getGrammar()->compileUpdate($query);
            return $this->database->update($compiled->getSQL(), $compiled->getBindings());
        } catch (\Throwable $exception) {
            return $this->handleException($exception);
        }
    }