diff --git a/src/Structures/Base.js b/src/Structures/Base.js
index <HASH>..<HASH> 100644
--- a/src/Structures/Base.js
+++ b/src/Structures/Base.js
@@ -154,7 +154,7 @@ class Base {
      *
      * @returns {*} The value of the given option path.
      */
-    getOption(path, fallback) {
+    getOption(path, fallback = null) {
         return _.get(this._options, path, fallback);
     }
 
diff --git a/src/Structures/Model.js b/src/Structures/Model.js
index <HASH>..<HASH> 100644
--- a/src/Structures/Model.js
+++ b/src/Structures/Model.js
@@ -567,6 +567,11 @@ class Model extends Base {
                 if (_.isString(result)) {
                     errors.push(result);
                     valid = false;
+
+                    // Break early if we're only interested in the first error.
+                    if (this.getOption('useFirstErrorOnly')) {
+                        return false;
+                    }
                 }
             });
         }
@@ -583,6 +588,10 @@ class Model extends Base {
         if (_.isEmpty(errors)) {
             Vue.delete(this._errors, attribute);
         } else {
+            if (this.getOption('useFirstErrorOnly')) {
+                errors = _.head(errors);
+            }
+
             Vue.set(this._errors, attribute, errors);
         }
Fix bug where only first error is not honoured