mvdnbrk/laravel-model-expires
scopeNotExpired()), reducing manual query logic in business layers.expires_at column.expires_at to Carbon, ensuring consistent datetime handling across the app.expired() and expires() events, enabling reactive workflows (e.g., sending notifications, archiving data).expires_at without proper binding).SoftDeletes, Observables)?expires_at calculation)?expires_at comparisons?scopeNotExpired() add significant overhead to queries?expires_at?expires_at column via migration (use provided expires() helper).Expirable trait to target models.scopeNotExpired() (or manually filter whereNull('expires_at')).expired()) for side effects.illuminate/database and nesbot/carbon (version conflicts possible if using older Carbon).timestamp/datetime column; no vendor-specific features.expires_at column if issues arise.scopeNotExpired() adds a WHERE clause; ensure expires_at is indexed.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Package compatibility breaks | Expiration logic fails silently | Fork the package or use a custom trait. |
| Timezone misconfiguration | Expired models incorrectly retained | Enforce UTC in expires_at or use Carbon macros. |
Missing index on expires_at |
Slow queries under load | Add index via migration. |
| Event listeners fail | Side effects (e.g., notifications) missed | Implement retries or dead-letter queues. |
Manual expires_at overrides |
Inconsistent expiration logic | Use accessors/mutators to validate dates. |
expires_at.How can I help you explore Laravel packages today?