Saya ingin membangun Sistem Informasi Retribusi Sampah menggunakan Laravel 12, PHP 8.3 dan MySQL.

Aplikasi akan saya kembangkan secara bertahap. Jangan membuat seluruh aplikasi sekaligus.

Ikuti aturan berikut selama proses pengembangan.

## Teknologi

- Laravel 12
- PHP 8.3
- MySQL
- Blade Template
- Eloquent ORM

## Jangan gunakan

- Bootstrap
- Tailwind
- Vue
- React
- Livewire
- Inertia
- Laravel Breeze
- Jetstream
- DataTables
- Laravel Policy
- Repository Pattern
- UUID

Saya akan membuat sendiri seluruh tampilan Blade.

Jangan membuat desain frontend.

Jika perlu membuat view cukup buat file Blade sederhana agar route dapat berjalan.

## Struktur Folder

app/
 ├── Http/
 │   ├── Controllers
 │   ├── Middleware
 │   └── Requests
 ├── Models
 ├── Services
 ├── Helpers
 ├── Traits

## Aturan

- Gunakan Resource Controller
- Gunakan Route Model Binding
- Gunakan Form Request Validation
- Gunakan Service Class
- Gunakan Database Transaction pada proses penting
- Gunakan Eloquent Relationship
- Gunakan Soft Delete jika diperlukan
- Gunakan Pagination Laravel

Controller hanya menangani

- request
- response
- memanggil service

Seluruh logika bisnis harus berada pada folder Services.

Model hanya berisi

- relasi
- accessor
- mutator
- scope

Seluruh validasi berada pada Form Request.

Gunakan eager loading.

Hindari N+1 Query.

Gunakan PSR-12.

Seluruh komentar kode menggunakan Bahasa Indonesia.

Jika ada beberapa pilihan implementasi, pilih yang paling sederhana, mudah dipelihara dan sesuai best practice Laravel 12.

Jangan mengerjakan modul lain sebelum saya memintanya.
