private function insert()
    {
        $last_insert_id = $this->connection->insert($this->table_name, $this->values);

        if (empty($this->values[$this->auto_increment])) {
            $this->values[$this->auto_increment] = $last_insert_id;
        }

        $this->values = array_merge($this->values, $this->refreshGeneratedFieldValues($last_insert_id));
        $this->setAsLoaded();
    }