Compare commits

10 Commits
Author SHA1 Message Date
Mark Gregory d8e7cdcf66 initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:47:50 +01:00
Mark Gregory d7c32e798b initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:46:46 +01:00
Mark Gregory 8f3433fafc initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:44:52 +01:00
Mark Gregory 8802524e7a initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:35:23 +01:00
Mark Gregory 17cc4a7bc0 initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:34:16 +01:00
Mark Gregory 0c70b16433 initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:26:18 +01:00
Mark Gregory 56234e2c9f initial commmit google
tests / ci (push) Canceled after 0s
2026-09-30 15:13:02 +01:00
Mark Gregory d4662356c0 initial commmit
tests / ci (push) Canceled after 0s
2026-09-30 15:00:37 +01:00
Mark Gregory ab09b9c956 initial commmit 2026-09-30 14:57:40 +01:00
Mark Gregory c0e89b4ccc initial commmit 2026-09-30 14:51:25 +01:00
51 changed files with 417 additions and 12421 deletions
+1
View File
@@ -26,3 +26,4 @@ yarn-error.log
*/.DS_Store */.DS_Store
**/.DS_Store **/.DS_Store
/provision/ /provision/
composer.lock
@@ -1,10 +1,17 @@
<?php <?php
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\EvidenceSubmission; use App\Models\EvidenceSubmission;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class EvidenceSubmissionController extends Controller class EvidenceSubmissionController extends Controller
{ {
public function create() { return view('pages.submit-evidence'); } public function create()
{
return view('pages.submit-evidence');
}
public function store(Request $request) public function store(Request $request)
{ {
$data = $request->validate([ $data = $request->validate([
@@ -14,6 +21,7 @@ class EvidenceSubmissionController extends Controller
]); ]);
$data['consent_to_contact'] = $request->boolean('consent_to_contact'); $data['consent_to_contact'] = $request->boolean('consent_to_contact');
EvidenceSubmission::create($data); EvidenceSubmission::create($data);
return redirect()->route('evidence.create')->with('status', 'Thank you. Your evidence has been submitted for review.'); return redirect()->route('evidence.create')->with('status', 'Thank you. Your evidence has been submitted for review.');
} }
} }
+4
View File
@@ -1,8 +1,12 @@
<?php <?php
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class EvidenceSubmission extends Model class EvidenceSubmission extends Model
{ {
protected $fillable = ['name', 'email', 'park_name', 'operator', 'purchase_price', 'valuation', 'finance_balance', 'story', 'consent_to_contact']; protected $fillable = ['name', 'email', 'park_name', 'operator', 'purchase_price', 'valuation', 'finance_balance', 'story', 'consent_to_contact'];
protected $casts = ['consent_to_contact' => 'boolean', 'purchase_price' => 'decimal:2', 'valuation' => 'decimal:2', 'finance_balance' => 'decimal:2']; protected $casts = ['consent_to_contact' => 'boolean', 'purchase_price' => 'decimal:2', 'valuation' => 'decimal:2', 'finance_balance' => 'decimal:2'];
} }
Regular → Executable
View File
+1 -2
View File
@@ -101,8 +101,7 @@
"@php artisan package:discover --ansi" "@php artisan package:discover --ansi"
], ],
"post-update-cmd": [ "post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force", "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
"@php artisan boost:update --ansi"
], ],
"post-root-package-install": [ "post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
Generated
-12381
View File
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,30 @@
<?php <?php
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
return new class extends Migration { public function up(): void { Schema::create('evidence_submissions', function (Blueprint $table) { $table->id(); $table->string('name')->nullable(); $table->string('email')->nullable(); $table->string('park_name')->nullable(); $table->string('operator')->nullable(); $table->decimal('purchase_price',12,2)->nullable(); $table->decimal('valuation',12,2)->nullable(); $table->decimal('finance_balance',12,2)->nullable(); $table->text('story'); $table->boolean('consent_to_contact')->default(false); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('evidence_submissions'); } };
return new class extends Migration
{
public function up(): void
{
Schema::create('evidence_submissions', function (Blueprint $table) {
$table->id();
$table->string('name')->nullable();
$table->string('email')->nullable();
$table->string('park_name')->nullable();
$table->string('operator')->nullable();
$table->decimal('purchase_price', 12, 2)->nullable();
$table->decimal('valuation', 12, 2)->nullable();
$table->decimal('finance_balance', 12, 2)->nullable();
$table->text('story');
$table->boolean('consent_to_contact')->default(false);
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('evidence_submissions');
}
};
+2 -2
View File
@@ -20,13 +20,13 @@ host('main')
->set('hostname', 'holidayparkowners.com') ->set('hostname', 'holidayparkowners.com')
->set('remote_user', 'mag') ->set('remote_user', 'mag')
->set('branch', 'main') ->set('branch', 'main')
->set('deploy_path', '/var/www/holidayparks/prod'); ->set('deploy_path', '/var/www/holidayparkowners/prod');
host('stage') host('stage')
->set('hostname', 'holidayparkowners.com') ->set('hostname', 'holidayparkowners.com')
->set('remote_user', 'mag') ->set('remote_user', 'mag')
->set('branch', 'stage') ->set('branch', 'stage')
->set('deploy_path', '/var/www/holidayparks/stage'); ->set('deploy_path', '/var/www/holidayparkowners/stage');
/* /*
* Install the root npm tree, then every module that owns its own lock file, * Install the root npm tree, then every module that owns its own lock file,
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 103 KiB

+3 -1
View File
@@ -1,2 +1,4 @@
User-agent: * User-agent: *
Disallow: Allow: /
Sitemap: https://holidayparkowners.com/sitemap.xml
+13
View File
@@ -0,0 +1,13 @@
{
"name": "Holiday Park Owners",
"short_name": "Park Owners",
"description": "Independent information and evidence for UK holiday park owners.",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#062f50",
"icons": [
{"src": "/android-chrome-192.png", "sizes": "192x192", "type": "image/png"},
{"src": "/android-chrome-512.png", "sizes": "512x512", "type": "image/png"}
]
}
@@ -1,3 +1,12 @@
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#062f50">
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -5,10 +14,6 @@
{{ filled($title ?? null) ? $title.' - '.config('app.name', 'Laravel') : config('app.name', 'Laravel') }} {{ filled($title ?? null) ? $title.' - '.config('app.name', 'Laravel') : config('app.name', 'Laravel') }}
</title> </title>
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
@fonts @fonts
@vite('resources/themes/backend/assets/css/app.css') @vite('resources/themes/backend/assets/css/app.css')
File diff suppressed because one or more lines are too long
+59 -1
View File
@@ -1,3 +1,61 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="Independent information for UK holiday park owners about valuations, depreciation, fees, resale and owner experiences."><title>@yield('title','Holiday Park Owners UK')</title>@vite(['resources/css/app.css'])</head><body> <!doctype html>
<html lang="en-GB">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>@yield('title', 'Holiday Park Owners UK') | Holiday Park Owners UK</title>
<meta name="description" content="@yield('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.')">
<meta name="robots" content="{{ app()->environment('production') ? 'index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1' : 'noindex,nofollow,noarchive' }}">
<meta name="googlebot" content="{{ app()->environment('production') ? 'index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1' : 'noindex,nofollow,noarchive' }}">
<link rel="canonical" href="{{ url()->current() }}">
<link rel="sitemap" type="application/xml" title="Sitemap" href="{{ route('sitemap') }}">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Holiday Park Owners UK">
<meta property="og:title" content="@yield('title', 'Holiday Park Owners UK')">
<meta property="og:description" content="@yield('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.')">
<meta property="og:url" content="{{ url()->current() }}">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="@yield('title', 'Holiday Park Owners UK')">
<meta name="twitter:description" content="@yield('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.')">
@php
$websiteSchema = [
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => 'Holiday Park Owners UK',
'url' => url('/'),
'description' => 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.',
'inLanguage' => 'en-GB',
];
$organisationSchema = [
'@context' => 'https://schema.org',
'@type' => 'Organization',
'name' => 'Holiday Park Owners UK',
'url' => url('/'),
'logo' => asset('apple-touch-icon.png'),
'description' => 'Independent consumer information for UK holiday park owners.',
];
@endphp
<script type="application/ld+json">@json($websiteSchema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)</script>
<script type="application/ld+json">@json($organisationSchema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)</script>
@vite(['resources/css/app.css'])
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('favicon-32x32.png') }}?v=12">
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('favicon-16x16.png') }}?v=12">
<link rel="icon" type="image/x-icon" sizes="any" href="{{ asset('favicon.ico') }}?v=12">
<link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicon.ico') }}?v=12">
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('apple-touch-icon.png') }}?v=12">
<link rel="apple-touch-icon" sizes="152x152" href="{{ asset('apple-touch-icon-152.png') }}?v=12">
<link rel="apple-touch-icon" sizes="120x120" href="{{ asset('apple-touch-icon-120.png') }}?v=12">
<link rel="apple-touch-icon" sizes="76x76" href="{{ asset('apple-touch-icon-76.png') }}?v=12">
<link rel="manifest" href="{{ asset('site.webmanifest') }}?v=12">
<meta name="theme-color" content="#062f50">
</head>
<body>
<header class="site-header"><a class="brand" href="{{ route('home') }}"><span class="brand-icon">⌂</span><span>HOLIDAY PARK<br><b>OWNERS UK</b><small>REAL INFORMATION. STRONGER OWNERS.</small></span></a><button class="menu" aria-label="Toggle navigation" onclick="document.querySelector('.nav').classList.toggle('open')">☰</button><nav class="nav"><a href="{{route('home')}}">Home</a><a href="{{route('valuations')}}">Valuations</a><a href="{{route('park-holidays')}}">Park Holidays UK</a><a href="{{route('owner-stories')}}">Owner Stories</a><a href="{{route('rights')}}">Know Your Rights</a><a href="{{route('evidence')}}">Evidence</a><a href="{{route('evidence.create')}}">Submit Evidence</a></nav></header> <header class="site-header"><a class="brand" href="{{ route('home') }}"><span class="brand-icon">⌂</span><span>HOLIDAY PARK<br><b>OWNERS UK</b><small>REAL INFORMATION. STRONGER OWNERS.</small></span></a><button class="menu" aria-label="Toggle navigation" onclick="document.querySelector('.nav').classList.toggle('open')">☰</button><nav class="nav"><a href="{{route('home')}}">Home</a><a href="{{route('valuations')}}">Valuations</a><a href="{{route('park-holidays')}}">Park Holidays UK</a><a href="{{route('owner-stories')}}">Owner Stories</a><a href="{{route('rights')}}">Know Your Rights</a><a href="{{route('evidence')}}">Evidence</a><a href="{{route('evidence.create')}}">Submit Evidence</a></nav></header>
<main>@yield('content')</main><footer><b>Holiday Park Owners UK</b><p>Independent consumer information. Not affiliated with Park Holidays UK or any holiday park operator. Owner reports are identified as such and should not be treated as findings of fact unless independently evidenced.</p><p>Information only — not legal or financial advice.</p></footer></body></html> <main>@yield('content')</main><footer><b>Holiday Park Owners UK</b><p>Independent consumer information. Not affiliated with Park Holidays UK or any holiday park operator. Owner reports are identified as such and should not be treated as findings of fact unless independently evidenced.</p><p>Information only — not legal or financial advice.</p></footer></body></html>
+1 -1
View File
@@ -1 +1 @@
@extends('layouts.public') @section('title','Evidence') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Evidence</h1><p class="lead">Documents matter.</p><div class="prose"><p>This library is designed for contracts, invoices, pitch-fee notices, finance statements, written valuations, resale offers and correspondence. Sources should be dated and clearly attributed.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection @extends('layouts.public') @section('title','Evidence') @section('description','Evidence and source material relating to UK holiday park ownership, valuations, pitch fees, finance, resale offers and owner experiences.') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Evidence</h1><p class="lead">Documents matter.</p><div class="prose"><p>This library is designed for contracts, invoices, pitch-fee notices, finance statements, written valuations, resale offers and correspondence. Sources should be dated and clearly attributed.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection
+1 -1
View File
@@ -1,4 +1,4 @@
@extends('layouts.public') @section('title','Holiday Park Owners UK — Valuations, ownership & evidence') @section('content') @extends('layouts.public') @section('title','Holiday Park Owners UK — Valuations, ownership & evidence') @section('description','Independent UK holiday park owner information covering valuations, depreciation, pitch fees, resale, finance and documented owner experiences.') @section('content')
<section class="hero"><div class="hero-inner"><span class="eyebrow">Independent UK owner information</span><h1>The real cost of<br><em>holiday park ownership.</em></h1><p>Independent information, owner experiences and evidence about valuations, depreciation, pitch fees and selling your holiday home.</p><div class="actions"><a class="btn red" href="{{route('evidence.create')}}">Share Your Experience →</a><a class="btn outline" href="{{route('rights')}}">Understand Your Rights →</a></div></div><aside>Holiday homes are for leisure use only and cannot be used as a main residence.</aside></section> <section class="hero"><div class="hero-inner"><span class="eyebrow">Independent UK owner information</span><h1>The real cost of<br><em>holiday park ownership.</em></h1><p>Independent information, owner experiences and evidence about valuations, depreciation, pitch fees and selling your holiday home.</p><div class="actions"><a class="btn red" href="{{route('evidence.create')}}">Share Your Experience →</a><a class="btn outline" href="{{route('rights')}}">Understand Your Rights →</a></div></div><aside>Holiday homes are for leisure use only and cannot be used as a main residence.</aside></section>
<section class="stats"><div><small>ILLUSTRATIVE PURCHASE PRICE</small><strong>£70,000</strong></div><div><small>ILLUSTRATIVE PARK VALUATION</small><strong>£20,000 <i>↓71%</i></strong></div><div><small>ILLUSTRATIVE FINANCE BALANCE</small><strong>£50,000</strong></div><div class="danger"><small>POTENTIAL SHORTFALL</small><strong>£30,000</strong></div></section><p class="disclaimer">Illustrative example only. Actual values vary. This is not financial advice.</p> <section class="stats"><div><small>ILLUSTRATIVE PURCHASE PRICE</small><strong>£70,000</strong></div><div><small>ILLUSTRATIVE PARK VALUATION</small><strong>£20,000 <i>↓71%</i></strong></div><div><small>ILLUSTRATIVE FINANCE BALANCE</small><strong>£50,000</strong></div><div class="danger"><small>POTENTIAL SHORTFALL</small><strong>£30,000</strong></div></section><p class="disclaimer">Illustrative example only. Actual values vary. This is not financial advice.</p>
<section class="grid"><article class="feature"><span class="tag">VALUATIONS</span><h2>Why valuations matter</h2><p>A holiday home can depreciate substantially after purchase. If a resale or part-exchange offer is lower than the remaining finance balance, an owner may face a significant shortfall.</p><p>The key comparison is not one number: it is the original purchase price, outstanding finance, independent/open-market value, park offer and the contractual costs of selling.</p><a href="{{route('valuations')}}">Understand valuations →</a></article><article class="focus"><span class="tag redtag">FOCUS: PARK HOLIDAYS UK</span><h2>Examining Park Holidays UK</h2><p>Ownership terms, running costs, finance, resale arrangements and documented owner experiences.</p><ul><li>Purchase prices, pitch fees and running costs</li><li>Finance and ongoing commitments</li><li>Valuations, part-exchange and resale</li><li>Owner experiences — clearly attributed</li></ul><a class="btn outline" href="{{route('park-holidays')}}">Explore the Park Holidays UK section →</a></article></section> <section class="grid"><article class="feature"><span class="tag">VALUATIONS</span><h2>Why valuations matter</h2><p>A holiday home can depreciate substantially after purchase. If a resale or part-exchange offer is lower than the remaining finance balance, an owner may face a significant shortfall.</p><p>The key comparison is not one number: it is the original purchase price, outstanding finance, independent/open-market value, park offer and the contractual costs of selling.</p><a href="{{route('valuations')}}">Understand valuations →</a></article><article class="focus"><span class="tag redtag">FOCUS: PARK HOLIDAYS UK</span><h2>Examining Park Holidays UK</h2><p>Ownership terms, running costs, finance, resale arrangements and documented owner experiences.</p><ul><li>Purchase prices, pitch fees and running costs</li><li>Finance and ongoing commitments</li><li>Valuations, part-exchange and resale</li><li>Owner experiences — clearly attributed</li></ul><a class="btn outline" href="{{route('park-holidays')}}">Explore the Park Holidays UK section →</a></article></section>
@@ -1 +1 @@
@extends('layouts.public') @section('title','Owner Stories') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Owner Stories</h1><p class="lead">Owners’ experiences, in their own context.</p><div class="prose"><p>Stories should include dates, park/operator, relevant documents and the operator’s response where available. Publication does not mean an allegation has been independently established.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection @extends('layouts.public') @section('title','Owner Stories') @section('description','Read documented experiences from UK holiday park owners, with context, dates and supporting evidence where available.') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Owner Stories</h1><p class="lead">Owners’ experiences, in their own context.</p><div class="prose"><p>Stories should include dates, park/operator, relevant documents and the operator’s response where available. Publication does not mean an allegation has been independently established.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection
@@ -1 +1 @@
@extends('layouts.public') @section('title','Park Holidays UK') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Park Holidays UK</h1><p class="lead">Evidence before conclusions.</p><div class="prose"><p>This section brings together published terms, costs, finance information, resale arrangements and attributed owner experiences concerning Park Holidays UK. It should distinguish company statements, independent evidence and individual allegations.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection @extends('layouts.public') @section('title','Park Holidays UK') @section('description','Independent information about Park Holidays UK, including ownership terms, costs, finance, resale arrangements and attributed owner experiences.') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Park Holidays UK</h1><p class="lead">Evidence before conclusions.</p><div class="prose"><p>This section brings together published terms, costs, finance information, resale arrangements and attributed owner experiences concerning Park Holidays UK. It should distinguish company statements, independent evidence and individual allegations.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection
+1 -1
View File
@@ -1 +1 @@
@extends('layouts.public') @section('title','Know Your Rights') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Know Your Rights</h1><p class="lead">Know what you are buying.</p><div class="prose"><p>A holiday caravan is not the same legal category as a residential park home. Read the licence agreement, finance agreement and park rules, and obtain appropriate professional advice before committing substantial sums.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection @extends('layouts.public') @section('title','Know Your Rights') @section('description','Information for UK holiday caravan owners about contracts, licence agreements, finance, park rules and questions to ask before committing or selling.') @section('content')<section class="page"><span class="eyebrow">Independent information</span><h1>Know Your Rights</h1><p class="lead">Know what you are buying.</p><div class="prose"><p>A holiday caravan is not the same legal category as a residential park home. Read the licence agreement, finance agreement and park rules, and obtain appropriate professional advice before committing substantial sums.</p></div><a class="btn red" href="{{route('evidence.create')}}">Submit supporting evidence →</a></section>@endsection
@@ -1 +1 @@
@extends('layouts.public') @section('title','Submit Evidence') @section('content')<section class="page narrow"><span class="eyebrow">Evidence locker</span><h1>Tell us what happened.</h1><p class="lead">Provide the numbers and circumstances. Do not upload or enter information you do not have the right to share.</p>@if(session('status'))<div class="success">{{session('status')}}</div>@endif<form method="post" action="{{route('evidence.store')}}">@csrf<div class="form-grid"><label>Name (optional)<input name="name" value="{{old('name')}}"></label><label>Email (optional)<input type="email" name="email" value="{{old('email')}}"></label><label>Park name<input name="park_name" value="{{old('park_name')}}"></label><label>Operator<input name="operator" value="{{old('operator')}}"></label><label>Purchase price £<input type="number" step="0.01" name="purchase_price" value="{{old('purchase_price')}}"></label><label>Valuation / offer £<input type="number" step="0.01" name="valuation" value="{{old('valuation')}}"></label><label>Finance balance £<input type="number" step="0.01" name="finance_balance" value="{{old('finance_balance')}}"></label></div><label>Your experience<textarea name="story" rows="9" required>{{old('story')}}</textarea></label><label class="check"><input type="checkbox" name="consent_to_contact" value="1"> You may contact me about this submission.</label>@if($errors->any())<div class="errors">{{implode(' ', $errors->all())}}</div>@endif<button class="btn red" type="submit">Submit evidence →</button></form></section>@endsection @extends('layouts.public') @section('title','Submit Evidence') @section('description','Submit your holiday park ownership experience and supporting information for review by Holiday Park Owners UK.') @section('content')<section class="page narrow"><span class="eyebrow">Evidence locker</span><h1>Tell us what happened.</h1><p class="lead">Provide the numbers and circumstances. Do not upload or enter information you do not have the right to share.</p>@if(session('status'))<div class="success">{{session('status')}}</div>@endif<form method="post" action="{{route('evidence.store')}}">@csrf<div class="form-grid"><label>Name (optional)<input name="name" value="{{old('name')}}"></label><label>Email (optional)<input type="email" name="email" value="{{old('email')}}"></label><label>Park name<input name="park_name" value="{{old('park_name')}}"></label><label>Operator<input name="operator" value="{{old('operator')}}"></label><label>Purchase price £<input type="number" step="0.01" name="purchase_price" value="{{old('purchase_price')}}"></label><label>Valuation / offer £<input type="number" step="0.01" name="valuation" value="{{old('valuation')}}"></label><label>Finance balance £<input type="number" step="0.01" name="finance_balance" value="{{old('finance_balance')}}"></label></div><label>Your experience<textarea name="story" rows="9" required>{{old('story')}}</textarea></label><label class="check"><input type="checkbox" name="consent_to_contact" value="1"> You may contact me about this submission.</label>@if($errors->any())<div class="errors">{{implode(' ', $errors->all())}}</div>@endif<button class="btn red" type="submit">Submit evidence →</button></form></section>@endsection
+1 -1
View File
@@ -1 +1 @@
@extends('layouts.public') @section('title','Holiday Home Valuations') @section('content') <section class="page"><span class="eyebrow">Valuations & depreciation</span><h1>Understand the numbers before you sell.</h1><p class="lead">A purchase price is not a guaranteed future value. Compare every valuation with the finance settlement figure, contractual sale costs and evidence of comparable sales.</p><div class="panel"><h2>Valuation shortfall calculator</h2><div class="calc"><label>Purchase price £<input id="purchase" type="number" value="70000"></label><label>Current valuation £<input id="value" type="number" value="20000"></label><label>Finance remaining £<input id="finance" type="number" value="50000"></label></div><div id="result" class="result"></div></div><div class="prose"><h2>Questions worth asking</h2><p>Ask how the valuation was calculated, whether you can sell privately, what commission or transfer fees apply, whether there are age restrictions on the unit, and whether an independent valuation is permitted. Keep every offer and explanation in writing.</p></div></section><script>function c(){let p=+purchase.value||0,v=+value.value||0,f=+finance.value||0;let loss=p?v/p*100:0;result.innerHTML=`Current value: <b>${loss.toFixed(1)}%</b> of purchase price · Finance shortfall at this valuation: <b>£${Math.max(0,f-v).toLocaleString()}</b>`} document.querySelectorAll('.calc input').forEach(x=>x.oninput=c);c()</script> @endsection @extends('layouts.public') @section('title','Holiday Home Valuations') @section('description','Understand UK holiday home valuations, depreciation, finance shortfalls, resale offers and the questions owners should ask before selling.') @section('content') <section class="page"><span class="eyebrow">Valuations & depreciation</span><h1>Understand the numbers before you sell.</h1><p class="lead">A purchase price is not a guaranteed future value. Compare every valuation with the finance settlement figure, contractual sale costs and evidence of comparable sales.</p><div class="panel"><h2>Valuation shortfall calculator</h2><div class="calc"><label>Purchase price £<input id="purchase" type="number" value="70000"></label><label>Current valuation £<input id="value" type="number" value="20000"></label><label>Finance remaining £<input id="finance" type="number" value="50000"></label></div><div id="result" class="result"></div></div><div class="prose"><h2>Questions worth asking</h2><p>Ask how the valuation was calculated, whether you can sell privately, what commission or transfer fees apply, whether there are age restrictions on the unit, and whether an independent valuation is permitted. Keep every offer and explanation in writing.</p></div></section><script>function c(){let p=+purchase.value||0,v=+value.value||0,f=+finance.value||0;let loss=p?v/p*100:0;result.innerHTML=`Current value: <b>${loss.toFixed(1)}%</b> of purchase price · Finance shortfall at this valuation: <b>£${Math.max(0,f-v).toLocaleString()}</b>`} document.querySelectorAll('.calc input').forEach(x=>x.oninput=c);c()</script> @endsection
+11
View File
@@ -0,0 +1,11 @@
@php echo '<?xml version="1.0" encoding="UTF-8"?>'; @endphp
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@foreach ($urls as $url)
<url>
<loc>{{ $url['loc'] }}</loc>
<lastmod>{{ $url['lastmod'] }}</lastmod>
<changefreq>{{ $url['changefreq'] }}</changefreq>
<priority>{{ $url['priority'] }}</priority>
</url>
@endforeach
</urlset>
+19
View File
@@ -11,3 +11,22 @@ Route::view('/know-your-rights', 'pages.rights')->name('rights');
Route::view('/evidence', 'pages.evidence')->name('evidence'); Route::view('/evidence', 'pages.evidence')->name('evidence');
Route::get('/submit-evidence', [EvidenceSubmissionController::class, 'create'])->name('evidence.create'); Route::get('/submit-evidence', [EvidenceSubmissionController::class, 'create'])->name('evidence.create');
Route::post('/submit-evidence', [EvidenceSubmissionController::class, 'store'])->name('evidence.store')->middleware('throttle:5,1'); Route::post('/submit-evidence', [EvidenceSubmissionController::class, 'store'])->name('evidence.store')->middleware('throttle:5,1');
Route::get('/sitemap.xml', function () {
$lastModified = now()->toDateString();
$urls = [
['loc' => route('home'), 'lastmod' => $lastModified, 'changefreq' => 'weekly', 'priority' => '1.0'],
['loc' => route('valuations'), 'lastmod' => $lastModified, 'changefreq' => 'monthly', 'priority' => '0.9'],
['loc' => route('park-holidays'), 'lastmod' => $lastModified, 'changefreq' => 'monthly', 'priority' => '0.9'],
['loc' => route('owner-stories'), 'lastmod' => $lastModified, 'changefreq' => 'weekly', 'priority' => '0.8'],
['loc' => route('rights'), 'lastmod' => $lastModified, 'changefreq' => 'monthly', 'priority' => '0.8'],
['loc' => route('evidence'), 'lastmod' => $lastModified, 'changefreq' => 'weekly', 'priority' => '0.8'],
['loc' => route('evidence.create'), 'lastmod' => $lastModified, 'changefreq' => 'monthly', 'priority' => '0.6'],
];
$xml = view('sitemap', compact('urls'))->render();
return response($xml, 200)
->header('Content-Type', 'application/xml; charset=UTF-8');
})->name('sitemap');
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
-3
View File
@@ -1,3 +0,0 @@
*
!data/
!.gitignore
-2
View File
@@ -1,2 +0,0 @@
*
!.gitignore
-2
View File
@@ -1,2 +0,0 @@
*
!.gitignore
View File
-2
View File
@@ -1,2 +0,0 @@
*
!.gitignore
@@ -0,0 +1,8 @@
<?php $__env->startSection('title','Holiday Park Owners UK — Valuations, ownership & evidence'); ?> <?php $__env->startSection('description','Independent UK holiday park owner information covering valuations, depreciation, pitch fees, resale, finance and documented owner experiences.'); ?> <?php $__env->startSection('content'); ?>
<section class="hero"><div class="hero-inner"><span class="eyebrow">Independent UK owner information</span><h1>The real cost of<br><em>holiday park ownership.</em></h1><p>Independent information, owner experiences and evidence about valuations, depreciation, pitch fees and selling your holiday home.</p><div class="actions"><a class="btn red" href="<?php echo e(route('evidence.create')); ?>">Share Your Experience →</a><a class="btn outline" href="<?php echo e(route('rights')); ?>">Understand Your Rights →</a></div></div><aside>Holiday homes are for leisure use only and cannot be used as a main residence.</aside></section>
<section class="stats"><div><small>ILLUSTRATIVE PURCHASE PRICE</small><strong>£70,000</strong></div><div><small>ILLUSTRATIVE PARK VALUATION</small><strong>£20,000 <i>↓71%</i></strong></div><div><small>ILLUSTRATIVE FINANCE BALANCE</small><strong>£50,000</strong></div><div class="danger"><small>POTENTIAL SHORTFALL</small><strong>£30,000</strong></div></section><p class="disclaimer">Illustrative example only. Actual values vary. This is not financial advice.</p>
<section class="grid"><article class="feature"><span class="tag">VALUATIONS</span><h2>Why valuations matter</h2><p>A holiday home can depreciate substantially after purchase. If a resale or part-exchange offer is lower than the remaining finance balance, an owner may face a significant shortfall.</p><p>The key comparison is not one number: it is the original purchase price, outstanding finance, independent/open-market value, park offer and the contractual costs of selling.</p><a href="<?php echo e(route('valuations')); ?>">Understand valuations →</a></article><article class="focus"><span class="tag redtag">FOCUS: PARK HOLIDAYS UK</span><h2>Examining Park Holidays UK</h2><p>Ownership terms, running costs, finance, resale arrangements and documented owner experiences.</p><ul><li>Purchase prices, pitch fees and running costs</li><li>Finance and ongoing commitments</li><li>Valuations, part-exchange and resale</li><li>Owner experiences — clearly attributed</li></ul><a class="btn outline" href="<?php echo e(route('park-holidays')); ?>">Explore the Park Holidays UK section →</a></article></section>
<section class="cards"><a href="<?php echo e(route('valuations')); ?>"><b>Valuations</b><span>Resale values and depreciation.</span></a><a href="<?php echo e(route('park-holidays')); ?>"><b>Park Holidays UK</b><span>Focused evidence and information.</span></a><a href="<?php echo e(route('owner-stories')); ?>"><b>Owner Stories</b><span>Experiences from owners.</span></a><a href="<?php echo e(route('rights')); ?>"><b>Know Your Rights</b><span>Contracts and questions to ask.</span></a><a href="<?php echo e(route('evidence')); ?>"><b>Evidence</b><span>Documents, sources and analysis.</span></a><a href="<?php echo e(route('evidence.create')); ?>"><b>Submit Evidence</b><span>Tell us what happened.</span></a></section>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.public', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?><?php /**PATH /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/resources/views/pages/home.blade.php ENDPATH**/ ?>
@@ -0,0 +1,62 @@
<!doctype html>
<html lang="en-GB">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title><?php echo $__env->yieldContent('title', 'Holiday Park Owners UK'); ?> | Holiday Park Owners UK</title>
<meta name="description" content="<?php echo $__env->yieldContent('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.'); ?>">
<meta name="robots" content="<?php echo e(app()->environment('production') ? 'index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1' : 'noindex,nofollow,noarchive'); ?>">
<meta name="googlebot" content="<?php echo e(app()->environment('production') ? 'index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1' : 'noindex,nofollow,noarchive'); ?>">
<link rel="canonical" href="<?php echo e(url()->current()); ?>">
<link rel="sitemap" type="application/xml" title="Sitemap" href="<?php echo e(route('sitemap')); ?>">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Holiday Park Owners UK">
<meta property="og:title" content="<?php echo $__env->yieldContent('title', 'Holiday Park Owners UK'); ?>">
<meta property="og:description" content="<?php echo $__env->yieldContent('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.'); ?>">
<meta property="og:url" content="<?php echo e(url()->current()); ?>">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="<?php echo $__env->yieldContent('title', 'Holiday Park Owners UK'); ?>">
<meta name="twitter:description" content="<?php echo $__env->yieldContent('description', 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.'); ?>">
<?php
$websiteSchema = [
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => 'Holiday Park Owners UK',
'url' => url('/'),
'description' => 'Independent information for UK holiday park owners about valuations, depreciation, pitch fees, resale, ownership rights and owner experiences.',
'inLanguage' => 'en-GB',
];
$organisationSchema = [
'@context' => 'https://schema.org',
'@type' => 'Organization',
'name' => 'Holiday Park Owners UK',
'url' => url('/'),
'logo' => asset('apple-touch-icon.png'),
'description' => 'Independent consumer information for UK holiday park owners.',
];
?>
<script type="application/ld+json"><?php echo json_encode($websiteSchema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE, 512) ?></script>
<script type="application/ld+json"><?php echo json_encode($organisationSchema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE, 512) ?></script>
<?php echo app('Illuminate\Foundation\Vite')(['resources/css/app.css']); ?>
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo e(asset('favicon-32x32.png')); ?>?v=12">
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo e(asset('favicon-16x16.png')); ?>?v=12">
<link rel="icon" type="image/x-icon" sizes="any" href="<?php echo e(asset('favicon.ico')); ?>?v=12">
<link rel="shortcut icon" type="image/x-icon" href="<?php echo e(asset('favicon.ico')); ?>?v=12">
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo e(asset('apple-touch-icon.png')); ?>?v=12">
<link rel="apple-touch-icon" sizes="152x152" href="<?php echo e(asset('apple-touch-icon-152.png')); ?>?v=12">
<link rel="apple-touch-icon" sizes="120x120" href="<?php echo e(asset('apple-touch-icon-120.png')); ?>?v=12">
<link rel="apple-touch-icon" sizes="76x76" href="<?php echo e(asset('apple-touch-icon-76.png')); ?>?v=12">
<link rel="manifest" href="<?php echo e(asset('site.webmanifest')); ?>?v=12">
<meta name="theme-color" content="#062f50">
</head>
<body>
<header class="site-header"><a class="brand" href="<?php echo e(route('home')); ?>"><span class="brand-icon">⌂</span><span>HOLIDAY PARK<br><b>OWNERS UK</b><small>REAL INFORMATION. STRONGER OWNERS.</small></span></a><button class="menu" aria-label="Toggle navigation" onclick="document.querySelector('.nav').classList.toggle('open')">☰</button><nav class="nav"><a href="<?php echo e(route('home')); ?>">Home</a><a href="<?php echo e(route('valuations')); ?>">Valuations</a><a href="<?php echo e(route('park-holidays')); ?>">Park Holidays UK</a><a href="<?php echo e(route('owner-stories')); ?>">Owner Stories</a><a href="<?php echo e(route('rights')); ?>">Know Your Rights</a><a href="<?php echo e(route('evidence')); ?>">Evidence</a><a href="<?php echo e(route('evidence.create')); ?>">Submit Evidence</a></nav></header>
<main><?php echo $__env->yieldContent('content'); ?></main><footer><b>Holiday Park Owners UK</b><p>Independent consumer information. Not affiliated with Park Holidays UK or any holiday park operator. Owner reports are identified as such and should not be treated as findings of fact unless independently evidenced.</p><p>Information only — not legal or financial advice.</p></footer></body></html>
<?php /**PATH /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/resources/views/layouts/public.blade.php ENDPATH**/ ?>
-2
View File
@@ -1,2 +0,0 @@
*
!.gitignore
+170
View File
@@ -0,0 +1,170 @@
[2026-09-30 14:34:54] local.ERROR: Please provide a valid cache path. {"exception":"[object] (InvalidArgumentException(code: 0): Please provide a valid cache path. at /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php:75)
[stacktrace]
#0 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php(97): Illuminate\\View\\Compilers\\Compiler->__construct(Object(Illuminate\\Filesystem\\Filesystem), false, '', true, 'php', true)
#1 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Container.php(1138): Illuminate\\View\\ViewServiceProvider->Illuminate\\View\\{closure}(Object(Illuminate\\Foundation\\Application), Array)
#2 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Container.php(937): Illuminate\\Container\\Container->build(Object(Closure))
#3 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1085): Illuminate\\Container\\Container->resolve('blade.compiler', Array, true)
#4 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Container.php(865): Illuminate\\Foundation\\Application->resolve('blade.compiler', Array)
#5 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1065): Illuminate\\Container\\Container->make('blade.compiler', Array)
#6 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Container.php(1842): Illuminate\\Foundation\\Application->make('blade.compiler')
#7 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(240): Illuminate\\Container\\Container->offsetGet('blade.compiler')
#8 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(211): Illuminate\\Support\\Facades\\Facade::resolveFacadeInstance('blade.compiler')
#9 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(358): Illuminate\\Support\\Facades\\Facade::getFacadeRoot()
#10 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/livewire/blaze/src/BlazeServiceProvider.php(113): Illuminate\\Support\\Facades\\Facade::__callStatic('directive', Array)
#11 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/livewire/blaze/src/BlazeServiceProvider.php(52): Livewire\\Blaze\\BlazeServiceProvider->registerBlazeDirectives()
#12 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Livewire\\Blaze\\BlazeServiceProvider->boot()
#13 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#14 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(96): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
#15 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
#16 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Container/Container.php(801): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
#17 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1158): Illuminate\\Container\\Container->call(Array)
#18 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1139): Illuminate\\Foundation\\Application->bootProvider(Object(Livewire\\Blaze\\BlazeServiceProvider))
#19 [internal function]: Illuminate\\Foundation\\Application->Illuminate\\Foundation\\{closure}(Object(Livewire\\Blaze\\BlazeServiceProvider), 'Livewire\\\\Blaze\\\\...')
#20 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1138): array_walk(Array, Object(Closure))
#21 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\\Foundation\\Application->boot()
#22 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(349): Illuminate\\Foundation\\Bootstrap\\BootProviders->bootstrap(Object(Illuminate\\Foundation\\Application))
#23 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(186): Illuminate\\Foundation\\Application->bootstrapWith(Array)
#24 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\\Foundation\\Http\\Kernel->bootstrap()
#25 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#26 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1227): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#27 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#28 {main}
"}
[2026-09-30 14:34:54] local.ERROR: Debugbar exception: Route [debugbar.assets] not defined. {"exception":"[object] (Symfony\\Component\\Routing\\Exception\\RouteNotFoundException(code: 0): Route [debugbar.assets] not defined. at /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php:542)
[stacktrace]
#0 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(870): Illuminate\\Routing\\UrlGenerator->route('debugbar.assets', Array, true)
#1 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php(360): route('debugbar.assets')
#2 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php(763): Fruitcake\\LaravelDebugbar\\LaravelDebugbar->getJavascriptRenderer()
#3 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/barryvdh/laravel-debugbar/src/LaravelDebugbar.php(547): Fruitcake\\LaravelDebugbar\\LaravelDebugbar->injectDebugbar(Object(Illuminate\\Http\\Response))
#4 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/barryvdh/laravel-debugbar/src/ServiceProvider.php(87): Fruitcake\\LaravelDebugbar\\LaravelDebugbar->handleResponse(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))
#5 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(493): Fruitcake\\LaravelDebugbar\\ServiceProvider->Fruitcake\\LaravelDebugbar\\{closure}(Object(Illuminate\\Foundation\\Http\\Events\\RequestHandled))
#6 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(323): Illuminate\\Events\\Dispatcher->Illuminate\\Events\\{closure}('Illuminate\\\\Foun...', Array)
#7 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(303): Illuminate\\Events\\Dispatcher->invokeListeners('Illuminate\\\\Foun...', Array, false)
#8 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Events\\Dispatcher->dispatch(Object(Illuminate\\Foundation\\Http\\Events\\RequestHandled))
#9 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1227): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#10 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#11 {main}
"}
[2026-09-30 14:35:27] local.ERROR: Database file at path [/Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/database/database.sqlite] does not exist. Ensure this is an absolute path to the database. (Connection: sqlite, Database: /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/database/database.sqlite, SQL: select * from "sessions" where "id" = TXp43lZi7Hw3gdgIxReb277qACGU6nAYq32x8w0e limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 0): Database file at path [/Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/database/database.sqlite] does not exist. Ensure this is an absolute path to the database. (Connection: sqlite, Database: /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/database/database.sqlite, SQL: select * from \"sessions\" where \"id\" = TXp43lZi7Hw3gdgIxReb277qACGU6nAYq32x8w0e limit 1) at /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php:857)
[stacktrace]
#0 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(813): Illuminate\\Database\\Connection->runQueryCallback('select * from \"...', Array, Object(Closure))
#1 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(426): Illuminate\\Database\\Connection->run('select * from \"...', Array, Object(Closure))
#2 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3573): Illuminate\\Database\\Connection->select('select * from \"...', Array, false, Array)
#3 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3557): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Query\\Builder->get(Array)
#5 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Query\\Builder->first(Array)
#6 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(96): Illuminate\\Database\\Query\\Builder->find('TXp43lZi7Hw3gdg...')
#7 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\DatabaseSessionHandler->read('TXp43lZi7Hw3gdg...')
#8 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(116): Illuminate\\Session\\Store->readFromHandler()
#9 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(100): Illuminate\\Session\\Store->loadSession()
#10 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(146): Illuminate\\Session\\Store->start()
#11 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Support/helpers.php(393): Illuminate\\Session\\Middleware\\StartSession->Illuminate\\Session\\Middleware\\{closure}(Object(Illuminate\\Session\\Store))
#12 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(143): tap(Object(Illuminate\\Session\\Store), Object(Closure))
#13 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(115): Illuminate\\Session\\Middleware\\StartSession->startSession(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store))
#14 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#15 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#16 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(36): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#22 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#23 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#24 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#25 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#26 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#27 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/beyondcode/laravel-query-detector/src/QueryDetectorMiddleware.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): BeyondCode\\QueryDetector\\QueryDetectorMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#40 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(61): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#46 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(28): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#51 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#52 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1227): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#53 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#54 {main}
[previous exception] [object] (Illuminate\\Database\\SQLiteDatabaseDoesNotExistException(code: 0): Database file at path [/Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/database/database.sqlite] does not exist. Ensure this is an absolute path to the database. at /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php:61)
[stacktrace]
#0 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php(19): Illuminate\\Database\\Connectors\\SQLiteConnector->parseDatabasePath(false)
#1 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(259): Illuminate\\Database\\Connectors\\SQLiteConnector->connect(Array)
#2 [internal function]: Illuminate\\Database\\Connectors\\ConnectionFactory->Illuminate\\Database\\Connectors\\{closure}()
#3 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(1297): call_user_func(Object(Closure))
#4 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(542): Illuminate\\Database\\Connection->getPdo()
#5 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(435): Illuminate\\Database\\Connection->getPdoForSelect(false)
#6 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(846): Illuminate\\Database\\Connection->Illuminate\\Database\\{closure}('select * from \"...', Array)
#7 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(813): Illuminate\\Database\\Connection->runQueryCallback('select * from \"...', Array, Object(Closure))
#8 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Connection.php(426): Illuminate\\Database\\Connection->run('select * from \"...', Array, Object(Closure))
#9 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3573): Illuminate\\Database\\Connection->select('select * from \"...', Array, false, Array)
#10 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3557): Illuminate\\Database\\Query\\Builder->runSelect()
#11 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(366): Illuminate\\Database\\Query\\Builder->get(Array)
#12 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(3475): Illuminate\\Database\\Query\\Builder->first(Array)
#13 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(96): Illuminate\\Database\\Query\\Builder->find('TXp43lZi7Hw3gdg...')
#14 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(128): Illuminate\\Session\\DatabaseSessionHandler->read('TXp43lZi7Hw3gdg...')
#15 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(116): Illuminate\\Session\\Store->readFromHandler()
#16 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Store.php(100): Illuminate\\Session\\Store->loadSession()
#17 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(146): Illuminate\\Session\\Store->start()
#18 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Support/helpers.php(393): Illuminate\\Session\\Middleware\\StartSession->Illuminate\\Session\\Middleware\\{closure}(Object(Illuminate\\Session\\Store))
#19 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(143): tap(Object(Illuminate\\Session\\Store), Object(Closure))
#20 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(115): Illuminate\\Session\\Middleware\\StartSession->startSession(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store))
#21 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#22 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#23 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(36): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#24 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#25 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(74): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(821): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#29 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(800): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#30 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(764): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#31 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Routing/Router.php(753): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#32 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#33 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#34 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/beyondcode/laravel-query-detector/src/QueryDetectorMiddleware.php(33): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): BeyondCode\\QueryDetector\\QueryDetectorMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#39 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#45 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(61): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php(28): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(219): Illuminate\\Http\\Middleware\\ValidatePathEncoding->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#58 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#59 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1227): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#60 /Users/markgregory/Developer/Sites/Personal/HolidayParkOwners/public/index.php(20): Illuminate\\Foundation\\Application->handleRequest(Object(Illuminate\\Http\\Request))
#61 {main}
"}