diff --git a/src/DataProvider.php b/src/DataProvider.php
index 47db17f..e264cd9 100644
--- a/src/DataProvider.php
+++ b/src/DataProvider.php
@@ -16,6 +16,7 @@
 use ReflectionProperty;
 use Symfony\Component\VarDumper\VarDumper;
 use Webfox\InertiaDataProviders\AttributeNameFormatters\AttributeNameFormatter;
+use Webfox\InertiaDataProviders\WrappingAttributes\WrappingAttribute;
 
 abstract class DataProvider implements Arrayable, Jsonable
 {
@@ -41,11 +42,22 @@ public function toArray(): array
         $convertedMethods = collect($reflectionClass->getMethods(ReflectionMethod::IS_PUBLIC))
             ->filter(fn (ReflectionMethod $method) => ! $method->isStatic() && ! in_array($method->name, $this->excludedMethods))
             ->mapWithKeys(function (ReflectionMethod $method) {
+                $attributes = $method->getAttributes();
                 $returnType = $method->getReturnType();
+
                 if ($returnType instanceof ReflectionNamedType && in_array($returnType->getName(), [DeferProp::class, LazyProp::class, Closure::class])) {
                     return [$method->name => $method->invoke($this)];
                 }
 
+                if (count($attributes) > 0) {
+                    foreach ($attributes as $attribute) {
+                        $attributeInstance = $attribute->newInstance();
+                        if ($attributeInstance instanceof WrappingAttribute) {
+                            return [$method->name => $attributeInstance(fn () => app()->call([$this, $method->name]))];
+                        }
+                    }
+                }
+
                 return [$method->name => fn () => app()->call([$this, $method->name])];
             });
 
diff --git a/src/WrappingAttributes/InertiaMerge.php b/src/WrappingAttributes/InertiaMerge.php
new file mode 100644
index 0000000..31b1033
--- /dev/null
+++ b/src/WrappingAttributes/InertiaMerge.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Webfox\InertiaDataProviders\WrappingAttributes;
+
+use Attribute;
+use Inertia\Inertia;
+
+#[Attribute(Attribute::TARGET_METHOD)]
+class InertiaMerge implements WrappingAttribute
+{
+    public function __invoke($data)
+    {
+        return Inertia::Merge($data);
+    }
+}
diff --git a/src/WrappingAttributes/WrappingAttribute.php b/src/WrappingAttributes/WrappingAttribute.php
new file mode 100644
index 0000000..efc7b5c
--- /dev/null
+++ b/src/WrappingAttributes/WrappingAttribute.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Webfox\InertiaDataProviders\WrappingAttributes;
+
+interface WrappingAttribute
+{
+    /**
+     * Wrap the data with the attribute.
+     *
+     * @param mixed $data
+     * @return array
+     */
+    public function __invoke($data);
+}