PHPackages                             mnaimjons/laravel-stories - 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. mnaimjons/laravel-stories

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

mnaimjons/laravel-stories
=========================

A Laravel package to add stories functionality to any model.

v1.0.0(1y ago)05MITPHPPHP &gt;=7.4

Since Oct 4Pushed 1y ago1 watchersCompare

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

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Laravel Stories Package
=======================

[](#laravel-stories-package)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e6e8d6cdf865ae4f33938fb1127d96ae5d089b6e782fffa63eb8ba1767764805/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6e61696d6a6f6e732f6c61726176656c2d73746f726965732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mnaimjons/laravel-stories)[![Total Downloads](https://camo.githubusercontent.com/94ca37980a0a9251ec99be415ff6c9d75a279cfac79212107d2844bee844ad96/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6e61696d6a6f6e732f6c61726176656c2d73746f726965732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mnaimjons/laravel-stories)[![License](https://camo.githubusercontent.com/af0f85bc66847dfc4038f86a4c9d1984fa57832e6139acacdc8c489038a33a84/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d6e61696d6a6f6e732f6c61726176656c2d73746f726965732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mnaimjons/laravel-stories)

The Laravel Stories Package provides "stories" functionality for any model in your Laravel application, similar to how it's implemented in social media platforms. The package supports:

- **Media uploads** (images and videos) using [Spatie Media Library](https://github.com/spatie/laravel-medialibrary).
- **Comments** on stories.
- **Reactions** to stories.
- **Tracking views** of stories.
- **Automatic deletion** of expired stories.

> **Note:** In the current version, all stories are visible to all users. Future releases will include privacy settings.

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
    - [Adding the Trait to Your Model](#adding-the-trait-to-your-model)
    - [Creating Stories](#creating-stories)
    - [Viewing Stories](#viewing-stories)
    - [Adding Comments](#adding-comments)
    - [Adding Reactions](#adding-reactions)
    - [Tracking Views](#tracking-views)
- [API Routes](#api-routes)
- [Scheduling Tasks](#scheduling-tasks)
- [Customization](#customization)
- [Testing](#testing)
- [License](#license)
- [Contact](#contact)

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

[](#installation)

1. Install the package via Composer:

    ```
    composer require mnaimjons/laravel-stories
    ```
2. Publish and run the migrations:

    ```
    php artisan vendor:publish --provider="Mnaimjons\LaravelStories\LaravelStoriesServiceProvider" --tag="migrations"
    php artisan migrate
    ```
3. Publish the configuration:

    ```
    php artisan vendor:publish --provider="Mnaimjons\LaravelStories\LaravelStoriesServiceProvider" --tag="config"
    ```
4. Install Spatie Media Library (if not already installed):

    ```
    composer require spatie/laravel-medialibrary
    php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"
    php artisan migrate
    ```

Configuration
-------------

[](#configuration)

The configuration file `config/stories.php` contains the package settings:

```
return [
    'default_expiration' => 24, // Story lifetime in hours
];
```

You can change the default story expiration time by modifying the `default_expiration` value.

Usage
-----

[](#usage)

### Adding the Trait to Your Model

[](#adding-the-trait-to-your-model)

Add the `HasStoriesTrait` trait and implement the `HasStories` interface in the model you want to associate stories with (e.g., the `User` model):

```
