Index: database/factories/OrderFactory.php
===================================================================
--- database/factories/OrderFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ database/factories/OrderFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,47 @@
+<?php
+
+namespace Database\Factories;
+
+use App\Models\Buyer;
+use App\Models\Receiver;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Order>
+ */
+class OrderFactory extends Factory
+{
+    /**
+     * Define the model's default state.
+     *
+     * @return array<string, mixed>
+     */
+    protected $model = Order::class;
+    public function definition(): array
+    {
+        $statuses = ['pending', 'processing', 'shipped', 'delivered'];
+        $date = $this->faker->dateTimeBetween('-30 days', 'now');
+        $estimatedDelivary = $this->faker->dateTimeBetween($date, '+30 days');
+        return [
+            'buyer_id' => Buyer::factory(),
+            'receiver_id' => Receiver::factory(),
+            'transport_id' => Transport::factory(),
+            'date' => $date,
+            'status' => $this->faker->randomElement($statuses),
+            'estimated_delivery_date' => $estimatedDelivary,
+        ];
+    }
+
+    public function pending(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'status' => 'pending',
+        ]);
+    }
+    public function delivered(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'status' => 'delivered',
+        ]);
+    }
+}
Index: database/factories/PaymentFactory.php
===================================================================
--- database/factories/PaymentFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ database/factories/PaymentFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,56 @@
+<?php
+
+namespace Database\Factories;
+
+use App\Models\Payment;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Payment>
+ */
+class PaymentFactory extends Factory
+{
+    /**
+     * Define the model's default state.
+     *
+     * @return array<string, mixed>
+     */
+    protected $model = Payment::class;
+    public function definition(): array
+    {
+        $paymentMethods = ['bank_transfer', 'credit_card', 'wire_transfer', 'check', 'cash'];
+        $statuses = ['pending', 'completed', 'failed', 'refunded'];
+
+        return [
+            'invoice_id' => Invoice::factory(),
+            'amount' => $this->faker->randomFloat(2, 500, 50000),
+            'payment_date' => $this->faker->dateTimeBetween('-30 days', 'now'),
+            'payment_method' => $this->faker->randomElement($paymentMethods),
+            'status' => $this->faker->randomElement($statuses),
+            'transaction_reference' => $this->faker->regexify('TXN[0-9]{10}'),
+        ];
+    }
+
+    public function completed(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'status' => 'completed',
+        ]);
+    }
+
+    public function bankTransfer(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'payment_method' => 'bank_transfer',
+            'transaction_reference' => $this->faker->regexify('BT[0-9]{12}'),
+        ]);
+    }
+
+    public function wireTransfer(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'payment_method' => 'wire_transfer',
+            'transaction_reference' => $this->faker->regexify('WT[0-9]{12}'),
+        ]);
+    }
+}
Index: database/factories/TransportFactory.php
===================================================================
--- database/factories/TransportFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ database/factories/TransportFactory.php	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,49 @@
+<?php
+
+namespace Database\Factories;
+
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Transport>
+ */
+class TransportFactory extends Factory
+{
+    /**
+     * Define the model's default state.
+     *
+     * @return array<string, mixed>
+     */
+    protected $model = Transport::class;
+    public function definition(): array
+    {
+        $transportCompanies = [
+            'DHL Express', 'FedEx International', 'UPS Global', 'TNT Express',
+            'Maersk Logistics', 'DB Schenker', 'Kuehne + Nagel', 'DSV Panalpina',
+            'Expeditors International', 'CEVA Logistics'
+        ];
+
+        $transportMethods = ['air', 'sea', 'road', 'rail'];
+
+        return [
+            'company_name' => $this->faker->randomElement($transportCompanies),
+            'method' => $this->faker->randomElement($transportMethods),
+            'cost' => $this->faker->randomFloat(2, 1, 5000),
+            'tracking_number' => $this->faker->regexify('[A-Z]{2}[0-9]{10}[A-Z]{2}'),
+        ];
+    }
+    public function airTransport(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'method' => 'air',
+            'cost' => $this->faker->randomFloat(2, 1, 5000),
+        ]);
+    }
+    public function seaTransport(): static
+    {
+        return $this->state(fn (array $attributes) => [
+            'method' => 'sea',
+            'cost' => $this->faker->randomFloat(2, 1, 1500),
+        ]);
+    }
+}
Index: package.json
===================================================================
--- package.json	(revision 9c87bfe6f28523ce9f5aa6774d2ec0d896e38389)
+++ package.json	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -8,4 +8,6 @@
     },
     "devDependencies": {
+        "@iconify-json/radix-icons": "^1.2.2",
+        "@iconify/vue": "^5.0.0",
         "@rushstack/eslint-patch": "^1.8.0",
         "@tailwindcss/forms": "^0.5.3",
@@ -37,4 +39,5 @@
         "@inertiajs/vue3": "^2.0.5",
         "@tailwindcss/cli": "^4.0.15",
+        "@vueuse/core": "^13.5.0",
         "bunx": "^0.1.0",
         "class-variance-authority": "^0.7.1",
Index: resources/js/Pages/Dashboard.vue
===================================================================
--- resources/js/Pages/Dashboard.vue	(revision 9c87bfe6f28523ce9f5aa6774d2ec0d896e38389)
+++ resources/js/Pages/Dashboard.vue	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -2,4 +2,6 @@
 import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout.vue';
 import { Head } from '@inertiajs/vue3';
+
+import { Button } from '@/components/ui/button';
 
 </script>
@@ -14,4 +16,5 @@
             >
                 Dashboard
+                
             </h2>
         </template>
Index: resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue
===================================================================
--- resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue	(revision 9c87bfe6f28523ce9f5aa6774d2ec0d896e38389)
+++ resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -1,3 +1,3 @@
-<script setup lang="ts">
+g<script setup lang="ts">
 import InputError from '@/Components/InputError.vue';
 import InputLabel from '@/Components/InputLabel.vue';
Index: resources/js/components/ui/button/Button.vue
===================================================================
--- resources/js/components/ui/button/Button.vue	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ resources/js/components/ui/button/Button.vue	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,27 @@
+<script setup lang="ts">
+import type { HTMLAttributes } from 'vue'
+import { Primitive, type PrimitiveProps } from 'reka-ui'
+import { cn } from '@/lib/utils'
+import { type ButtonVariants, buttonVariants } from '.'
+
+interface Props extends PrimitiveProps {
+  variant?: ButtonVariants['variant']
+  size?: ButtonVariants['size']
+  class?: HTMLAttributes['class']
+}
+
+const props = withDefaults(defineProps<Props>(), {
+  as: 'button',
+})
+</script>
+
+<template>
+  <Primitive
+    data-slot="button"
+    :as="as"
+    :as-child="asChild"
+    :class="cn(buttonVariants({ variant, size }), props.class)"
+  >
+    <slot />
+  </Primitive>
+</template>
Index: resources/js/components/ui/button/index.ts
===================================================================
--- resources/js/components/ui/button/index.ts	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ resources/js/components/ui/button/index.ts	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,36 @@
+import { cva, type VariantProps } from 'class-variance-authority'
+
+export { default as Button } from './Button.vue'
+
+export const buttonVariants = cva(
+  'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=\'size-\'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
+  {
+    variants: {
+      variant: {
+        default:
+          'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',
+        destructive:
+          'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
+        outline:
+          'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
+        secondary:
+          'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',
+        ghost:
+          'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
+        link: 'text-primary underline-offset-4 hover:underline',
+      },
+      size: {
+        default: 'h-9 px-4 py-2 has-[>svg]:px-3',
+        sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',
+        lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',
+        icon: 'size-9',
+      },
+    },
+    defaultVariants: {
+      variant: 'default',
+      size: 'default',
+    },
+  },
+)
+
+export type ButtonVariants = VariantProps<typeof buttonVariants>
Index: resources/js/lib/utils.js
===================================================================
--- resources/js/lib/utils.js	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
+++ resources/js/lib/utils.js	(revision 2fe7c3f43e39afff7c094b45a8ae3d5736ab5f69)
@@ -0,0 +1,4 @@
+// resources/js/lib/utils.js
+export function cn(...classes) {
+    return classes.filter(Boolean).join(" ");
+}
