So what i need was an simple api with pagination, found this package https://github.com/spatie/laravel-fractal the documentation was not quite simple so had little research. In this example I'm using article, so first create Transformer folder.

<?php
namespace App\Transformers;

use App\Article;
use League\Fractal\TransformerAbstract;

class ArticleTransformer extends TransformerAbstract
{
    public function transform(Article $article)
    {
        return [
            'title' => $article->title,
            'description' => $article->description
        ];
    }
}

Then in the Api Controller

<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Article;
use App\Http\Controllers\Controller;

use App\Transformers\ArticleTransformer;
use League\Fractal\Manager;
use League\Fractal\Resource\Collection;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;

class ArticleController extends Controller
{

    /**
     * @var Manager
     */
    private $fractal;

    /**
     * @var UserTransformer
     */
    private $articleTransformer;

    function __construct(Manager $fractal, ArticleTransformer $articleTransformer)
    {
        $this->fractal = $fractal;
        $this->articleTransformer = $articleTransformer;
    }

    public function index() {
        $articlesPaginator = Article::paginate(10);
        $articles = new Collection($articlesPaginator->items(), $this->articleTransformer);
        $articles->setPaginator(new IlluminatePaginatorAdapter($articlesPaginator));
        $articles = $this->fractal->createData($articles); // Transform data
        return $articles->toArray();
    }
}

Then the result should be like this