/** * @param CreateGroup $command * @return Group */ public function handle(CreateGroup $command) { $actor = $command->actor; $data = $command->data; $this->forum->assertCan($actor, 'createGroup'); $group = Group::build(array_get($data, 'attributes.nameSingular'), array_get($data, 'attributes.namePlural'), array_get($data, 'attributes.color'), array_get($data, 'attributes.icon')); event(new GroupWillBeSaved($group, $actor, $data)); $group->save(); $this->dispatchEventsFor($group); return $group; }