A Collection of Laravel Packages I’ve Built to Solve Real Problems

Matt Yeend avatar
, , , , , ,

Over time, I’ve found myself solving the same problems across different Laravel projects. Rather than re-implementing the same solutions again and again, I started extracting them into small, focused packages that are easy to drop into any application.

Below is an overview of the Laravel packages I’ve built so far, what they do, and the kinds of problems they are designed to solve.

CurrencyExchange – Currency Rates and Conversion Made Simple

CurrencyExchange is a Laravel package that provides a straightforward way to retrieve exchange rates and perform currency conversions.

It integrates with the ExchangeRate API to ensure reliable and up-to-date data, and it is designed to be simple to configure and extend.

Features

  • Retrieve real-time exchange rates for any supported currency
  • Convert between two currencies with a clean API
  • Configurable default base currency and API key
  • Optional frontend UI for fetching rates and conversions
  • Lightweight and suitable for any Laravel application

This package works well for SaaS platforms, e-commerce projects, or any application that needs currency data without unnecessary complexity.

https://packagist.org/packages/mattyeend/currency-exchange

Dynamic Enum Generator – PHP Enums from Database Columns

Modern PHP gives us native enums, but database schemas often lag behind. Dynamic Enum Generator bridges that gap by generating PHP 8.1+ enums directly from database columns.

Features

  • Works with any table and column
  • Automatically creates missing directories
  • Generates native PHP enums
  • Ideal for status, role, and type fields

It helps keep application logic strongly typed and aligned with the underlying database structure.

https://packagist.org/packages/mattyeend/dynamic-enum-generator

Guest-to-User Helper – Seamless Guest Migration

Many applications allow users to interact as guests before registering or logging in. Guest-to-User Helper makes it easy to migrate guest-owned data to a real user account when that happens.

Features

  • Compatible with Laravel 10, 11, and 12
  • Assigns a unique guest identifier
  • Automatically migrates guest-owned models on registration or login
  • Simple API with no deep framework coupling

This is particularly useful for carts, drafts, preferences, and other temporary data that should persist after sign-up.

https://packagist.org/packages/mattyeend/guest-to-user-helper

Health Status – Application Health Monitoring

Health Status provides a simple way to monitor the operational health of a Laravel application from within the app itself.

What It Monitors

  • Database connectivity and latency
  • External host ping checks
  • Queue sizes
  • Cron heartbeat
  • Disk usage

It supports Laravel 10, 11, and 12, and works well as the foundation for internal dashboards or alerting systems.

https://packagist.org/packages/mattyeend/health-status

Laravel Model Service – Generate Models with Services

For projects that follow a service-layer architecture, Laravel Model Service extends the make:model command to generate a matching service class at the same time.

Features

  • Adds a -s or --service flag to make:model
  • Generates service classes in app/Services
  • Fully PSR-4 compliant
  • Works with all existing make:model options

This helps enforce consistency and reduces repetitive setup work.

https://packagist.org/packages/mattyeend/laravel-model-service

Logging – Structured Application Event Logging

Logging is a database-driven event logging package for Laravel applications that need more than simple file logs.

Features

  • Log predefined or custom actions
  • Track the user performing an action and any related user
  • Store additional structured data as JSON
  • Includes common predefined actions such as login, logout, and user creation

It is well suited to auditing, analytics, and applications where traceability matters.

https://packagist.org/packages/mattyeend/logging

Prevent Destructive Commands – Protect Production Environments

Prevent Destructive Commands is a small but important package that disables dangerous Artisan commands in production environments.

Its goal is simple: reduce the risk of accidental data loss caused by running destructive commands on a live system.

https://packagist.org/packages/mattyeend/prevent-destructive-commands

Queue Monitor – Real-Time Queue Visibility

Queue Monitor provides real-time insight into how Laravel queues are behaving.

Features

  • Monitor queue processing in real time
  • Track job execution times
  • View failed jobs and retry status

It is especially useful for diagnosing bottlenecks and ensuring background jobs are running as expected.

https://packagist.org/packages/mattyeend/queue-monitor

Closing Thoughts

Each of these packages exists because I needed a clean, reusable solution to a real problem. They are deliberately lightweight, opinionated where necessary, and designed to integrate naturally with Laravel rather than fighting against it.

If any of these solve a problem you are facing, I hope they save you some time and help keep your codebase clean and maintainable.