diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..a186cd2
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,18 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[compose.yaml]
+indent_size = 4
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..c0660ea
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,65 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+APP_LOCALE=en
+APP_FALLBACK_LOCALE=en
+APP_FAKER_LOCALE=en_US
+
+APP_MAINTENANCE_DRIVER=file
+# APP_MAINTENANCE_STORE=database
+
+# PHP_CLI_SERVER_WORKERS=4
+
+BCRYPT_ROUNDS=12
+
+LOG_CHANNEL=stack
+LOG_STACK=single
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=sqlite
+# DB_HOST=127.0.0.1
+# DB_PORT=3306
+# DB_DATABASE=laravel
+# DB_USERNAME=root
+# DB_PASSWORD=
+
+SESSION_DRIVER=database
+SESSION_LIFETIME=120
+SESSION_ENCRYPT=false
+SESSION_PATH=/
+SESSION_DOMAIN=null
+
+BROADCAST_CONNECTION=log
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=database
+
+CACHE_STORE=database
+# CACHE_PREFIX=
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_CLIENT=phpredis
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=log
+MAIL_SCHEME=null
+MAIL_HOST=127.0.0.1
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_FROM_ADDRESS="hello@example.com"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+VITE_APP_NAME="${APP_NAME}"
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..fcb21d3
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,11 @@
+* text=auto eol=lf
+
+*.blade.php diff=html
+*.css diff=css
+*.html diff=html
+*.md diff=markdown
+*.php diff=php
+
+/.github export-ignore
+CHANGELOG.md export-ignore
+.styleci.yml export-ignore
diff --git a/.gitignore b/.gitignore
index e427ff3..b71b1ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,24 @@
-node_modules/
-*/node_modules/
-*/build/
+*.log
+.DS_Store
+.env
+.env.backup
+.env.production
+.phpactor.json
+.phpunit.result.cache
+/.fleet
+/.idea
+/.nova
+/.phpunit.cache
+/.vscode
+/.zed
+/auth.json
+/node_modules
+/public/build
+/public/hot
+/public/storage
+/storage/*.key
+/storage/pail
+/vendor
+Homestead.json
+Homestead.yaml
+Thumbs.db
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..6807ba5
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,7 @@
+
= h($heroDescription) ?>
-Save the ride context and instantly generate contextual offers.
-Store pickup, destination, time, party size, and channel using a focused intake form.
-Score nearby restaurants and experiences by geography, timing, quality, and strategic value.
-Confirm the best offer in one click and keep a simple log for CTR and taxi-to-booking conversion.
-Submit the first taxi flow above to populate the operations board and recommendation funnel.
-| Passenger | -Destination | -Channel | -Status | -Created | -- |
|---|---|---|---|---|---|
|
- = h($request['passenger_name']) ?>
- = h($request['pickup_point']) ?>
- |
- = h(destination_label((string) $request['destination_area'])) ?> | -= h(source_channel_label((string) $request['source_channel'])) ?> | -= h(str_replace('_', ' ', (string) $request['status'])) ?> | -= h(date('d M H:i', strtotime((string) $request['created_at']))) ?> | -Detail | -
{{ $booking->customer_name }} is booked for {{ $booking->offer->title }}. This step closes the demo funnel with a real booking_completed event.
This demo keeps the story brutally simple: request a taxi, confirm the arrival, surface 2–3 relevant offers, and close a booking with measurable tracking.
+Use realistic destination context so the recommendation engine has something to work with.
+ + @if ($errors->any()) +These are the kinds of offers the ride confirmation step can surface.
+{{ $offer->excerpt }}
+{{ $offer->description ?: $offer->excerpt }}
+ + @if($recommendation) +Pickup: {{ $ride->pickup_label }}
Destination: {{ $ride->destination_label }}
ETA: {{ $ride->eta_minutes }} min
{{ $recommendation->offer->excerpt }}
+Why it fits: {{ $recommendation->reason }}
+