public function validates($options = [])
    {
        $this->sync();
        $exists = $this->exists();
        $defaults = [
            'events'   => $exists ? 'update' : 'create',
            'required' => $exists ? false : true,
            'entity'   => $this,
            'embed'    => true
        ];
        $options += $defaults;
        $validator = static::validator();

        $valid = $this->_validates(['embed' => $options['embed']]);

        $success = $validator->validates($this->get(), $options);
        $this->_errors = [];
        $this->invalidate($validator->errors());
        return $success && $valid;
    }