it helps some times When you define a belongsToMany relationship, that defines the relationship, for a given Category. But by calling Category::products()... you haven't yet said for which category you want to get the products for. There for you can do $category = Category::find($category_id) to get the category and then retrieve the products for that category by doing $category->products. You can of course go directly for the products like this: Category::find($category_id)->products.
hop of those help? You can either remove E_STRICT from error_reporting(), or you can simply make your method static, if you need to call it statically. As far as I know, there is no (strict) way to have a method that can be invoked both as static and non-static method. Also, which is more annoying, you cannot have two methods with the same name, one being static and the other non-static.
PhpStorm - How to detect PHP error "Non-static method should not be called statically"?
it fixes the issue Replace use Chencha\Share\Share to use Share; on the top of your page. The Share class in the example is the Facade Chencha\Share\ShareFacade which should be resolved by laravel loader when you register ShareServiceProvider.
How can I solve "Non-static method xxx::xxxx() should not be called statically"