Смотрите namespace App\Http\Controllers;
Это объявляется пространство имен. А значит, что обращения к классам будут идти от него. Если вы хотите использовать класс из другого пространства имен, то у Вас 2 пути:
1) Прописать после объявления пространства имен текущего класса использование того, что вам надо use Class\With\Namespace;
2) При попытке обратиться к классу прописываете вызов вместе с пространством имен $obj = new \Class\With\Namespace; $static = \Class\With\Namespace::staticMethod();
Вам нужно не объект создавать, а класс, который будет реализовывать Ваш интерфейс с помощью ключевого слова implements. Почитайте подробнее про интерфейсы.
Делаете таблицу attribute_product - промежуточную, где будете хранить связь товар атрибут, в ней id Primary Key, product_id, attribute_id (можно внешний ключ, можно не парится)
Дальше вписываете это в свою архитектуру, чтоб он джоин по таблице мог делать для вывода всех атрибутов по товару, ну или на худой конец отдельным запросом. И соответственно также для добавление поведение, чтоб связь в бд прописывалась добавляете.