public function validate($record)
    {
        $record->errors()->clear();
        
        foreach ($this->validations as $attribute => $validators) {
            if ($attribute === 'validateWith') {
                foreach ($validators as $validatorClass => $options) {
                    if (is_int($validatorClass)) {
                        $validatorClass = $options;
                        $options = [];
                    }
                    $validator = new $validatorClass($options);
                    $validator->validate($record);
                }
            } elseif (is_int($attribute)) {
                if (is_string($validators)) {
                    $record->$validators();
                } elseif (is_array($validators)) {
                    $attributes = array_shift($validators);
                    $validators = array_shift($validators);
                    foreach ($attributes as $attribute) {
                        $this->validateAttribute($record, $attribute, $validators);
                    }
                }
            } else  {
                $this->validateAttribute($record, $attribute, $validators);
            }
        }
        
        return $record->errors()->none();
    }