Skip to content
Back to skills

Laravel Builder

ASecurity

Scaffold a complete Laravel 11 project from scratch — Breeze auth, Filament admin panel, PostgreSQL config, Sail/Docker dev environment, and Paymob webhook endpoint. Triggers when user asks to build a Laravel project, create a Laravel app, scaffold Laravel with admin panel, or set up Laravel with PostgreSQL.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentsphpbashsqldockerapidatabase

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add Tekkiiiii/the-agency --skill laravel-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Laravel Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Laravel Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tekkiiiii-laravel-builder/badge)](https://www.skillsdirectory.com/skills/tekkiiiii-laravel-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: laravel-builder
description: >
  Scaffold a complete Laravel 11 project from scratch — Breeze auth, Filament admin panel,
  PostgreSQL config, Sail/Docker dev environment, and Paymob webhook endpoint.
  Triggers when user asks to build a Laravel project, create a Laravel app,
  scaffold Laravel with admin panel, or set up Laravel with PostgreSQL.
---

# Laravel Builder Agent

## Step 1 — Bootstrap Laravel 11 Project

```bash
composer create-project laravel/laravel project-name
cd project-name
composer require filament/filament:^3.2 laravel/sanctum
composer require --dev tailwindcss/laravel-vite-plugin
php artisan filament:install --panels
```

## Step 2 — PostgreSQL Config

```env
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=project_db
DB_USERNAME=postgres
DB_PASSWORD=
```

```php
// database/migrations/...create_users_table.php
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
    // PostgreSQL-specific
    $table->uuid('uuid')->unique()->default(DB::raw('gen_random_uuid()'));
});
```

## Step 3 — Sail + Docker Dev Environment

```bash
composer require laravel/sail --dev
php artisan sail:install --with=mysql,redis,mailhog
# OR for PostgreSQL:
php artisan sail:install --with=pgsql
docker compose up -d
```

Alternative (no Docker — use Laravel Herd/DValet):
```bash
# Create PostgreSQL DB
createdb project_db
# Add to .env
DB_CONNECTION=pgsql
```

## Step 4 — Laravel Breeze Auth

```bash
php artisan breeze:install
php artisan migrate
npm install
npm run dev
```

## Step 5 — Filament Admin Panel

```bash
php artisan make:filament-resource Booking --generate
php artisan make:filament-resource Package --generate
php artisan make:filament-resource Guest --generate
```

```php
// app/Providers/FilamentServiceProvider.php
public function boot(): void
{
    Filament::registerResources([
        BookingResource::class,
        PackageResource::class,
        GuestResource::class,
    ]);
}
```

## Step 6 — Paymob Webhook Setup

```bash
# Install Paymob SDK
composer require paymob/paymob
```

```php
// routes/web.php
use App\Http\Controllers\PaymobWebhookController;

Route::post('/webhook/paymob', [PaymobWebhookController::class, 'handle'])
    ->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class]);
```

```php
// app/Http/Controllers/PaymobWebhookController.php
class PaymobWebhookController extends Controller
{
    public function handle(Request $request)
    {
        $hmac = $request->input('hmac');
        $raw = $request->getContent();
        $expected = hash_hmac('sha512', config('services.paymob.hmac_secret'), $raw);

        if (!hash_equals($expected, $hmac)) {
            return response('Invalid signature', 401);
        }

        $type = $request->input('type');
        $data = $request->input('obj');

        match ($type) {
            'TRANSACTION_CREATED' => $this->handleTransaction($data),
            'TRANSACTION_REFUND' => $this->handleRefund($data),
            default => response('OK'),
        };
    }
}
```

## Step 7 — n8n Webhook Trigger

```php
// app/Services/N8nService.php
class N8nService
{
    public function trigger(string $event, array $payload): void
    {
        Http::post(config('services.n8n.webhook_url'), [
            'event' => $event,
            'timestamp' => now()->toIso8601String(),
            'payload' => $payload,
        ]);
    }
}
```

## Project Structure
```
project/
├── app/
│   ├── Filament/Resources/     ← admin resources
│   ├── Http/Controllers/      ← API + webhook controllers
│   └── Services/
│       ├── PaymobService.php
│       └── N8nService.php
├── database/migrations/         ← all table migrations
├── routes/web.php              ← web routes
├── resources/views/             ← guest-facing Blade views
├── .env.example
└── composer.json
```

## Deployment (Railway)
- Railway supports PHP 8.2 via Nixpacks
- Use `railway.json` or `Procfile`
- Connect Railway Postgres
- Set environment variables from Railway dashboard

Files in this skill

  • SKILL.md4.2 KB
  • references/laravel-11-filament-setup.md1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…