PHPackages                             bhhaskin/laravel-tickets - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bhhaskin/laravel-tickets

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

bhhaskin/laravel-tickets
========================

Ticketing utilities for Laravel applications.

0.2.0(6mo ago)025MITPHPPHP ^8.1CI passing

Since Nov 3Pushed 6mo agoCompare

[ Source](https://github.com/bhhaskin/laravel-tickets)[ Packagist](https://packagist.org/packages/bhhaskin/laravel-tickets)[ RSS](/packages/bhhaskin-laravel-tickets/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (5)Versions (3)Used By (0)

laravel-tickets
===============

[](#laravel-tickets)

`bhhaskin/laravel-tickets` provides a reusable ticketing system for Laravel 10/11 applications with optional Markdown rendering, polymorphic attachments, audit logging, and workspace scoping.

Installation
------------

[](#installation)

```
composer require bhhaskin/laravel-tickets:^0.1.0
```

Publish config and migrations if you need to customise them:

```
php artisan vendor:publish --tag=laravel-tickets-config
php artisan vendor:publish --tag=laravel-tickets-migrations
```

Run the package migrations:

```
php artisan migrate
```

Features
--------

[](#features)

- SQLite-friendly migrations and Testbench-ready factories.
- Markdown rendering for ticket bodies and replies (via `Str::markdown`).
- Optional audit trail if [`bhhaskin/laravel-audit`](https://github.com/bhhaskin/laravel-audit) is installed.
- Polymorphic associations (`ticketables`) to link any Eloquent model to a ticket.
- Optional workspace integration when [`bhhaskin/laravel-workspaces`](https://github.com/bhhaskin/laravel-workspaces) is present.

Ticket Model
------------

[](#ticket-model)

```
use Bhhaskin\Tickets\Models\Ticket;

$ticket = Ticket::create([
    'user_id' => $user->id,
    'subject' => 'DNS outage',
    'body' => "We cannot reach example.com from the LA office.",
    'priority' => Ticket::PRIORITY_HIGH,
]);

// Attach arbitrary models
$ticket->attachModel($site);

// Optional: assign a workspace if available
if (class_exists(\Bhhaskin\LaravelWorkspaces\Support\WorkspaceConfig::class)) {
    $ticket->assignWorkspace($workspace);
}

// Replies render markdown automatically
$ticket->replies()->create([
    'user_id' => $user->id,
    'body' => "Here is **more** context",
]);
```

Scopes
------

[](#scopes)

```
// Tickets for a specific user
$mine = Ticket::forUser($user)->latest()->get();

// Tickets for a workspace (works when laravel-workspaces is installed)
$workspaceTickets = Ticket::forWorkspace($workspace)->with(['owner','replies','associations.ticketable'])->paginate();
```

Optional Packages
-----------------

[](#optional-packages)

- Install `bhhaskin/laravel-audit` to automatically log ticket and reply lifecycle events.
- Install `bhhaskin/laravel-workspaces` to scope tickets by workspace (adds `workspace()` relation and resource payload).

Both integrations are auto-detected—no additional configuration is required once the packages are installed.

Testing
-------

[](#testing)

```
composer test
```

The suite uses Orchestra Testbench with in-memory SQLite and includes stubs for optional integrations so tests pass without extra dependencies.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance68

Regular maintenance activity

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

190d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ec33fc092098e1dd582f55e8d1c82c6ebe2b472302f909f82d70235c7c665ff8?d=identicon)[bhhaskin](/maintainers/bhhaskin)

---

Top Contributors

[![bhhaskin](https://avatars.githubusercontent.com/u/4709778?v=4)](https://github.com/bhhaskin "bhhaskin (4 commits)")

---

Tags

laravelsupportticketsissue-tracking

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/bhhaskin-laravel-tickets/health.svg)

```
[![Health](https://phpackages.com/badges/bhhaskin-laravel-tickets/health.svg)](https://phpackages.com/packages/bhhaskin-laravel-tickets)
```

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[glhd/special

1929.4k](/packages/glhd-special)[bjuppa/laravel-blog

Add blog functionality to your Laravel project

483.3k2](/packages/bjuppa-laravel-blog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
