/** * Get a unique model id. * * @return string */ protected function getUniqueId() { while (!isset($id) || TrackableResourceModel::find($id)) { $id = str_random(6); } return $id; }
/** * Dynamically pass calls to tracker instances. * * @param $name * @param array $arguments * @return \BoxedCode\Tracking\Contracts\Tracker */ public function __call($name, $arguments = []) { if (array_key_exists($name, $this->trackers)) { $tracker = $this->container->make($this->trackers[$name]); $attr = $tracker->getModelAttributes($arguments); $tracker->setModel(TrackableResourceModel::create($attr)); return $tracker; } }
protected function createStubResource($attrs = []) { $attrs = array_merge(['id' => str_random(7), 'type' => StubTracker::class], $attrs); return TrackableResourceModel::create($attrs); }